一尘不染

AngularJS与Django-冲突的模板标签

django

我想将AngularJS与Django一起使用,但是它们都{{ }}用作模板标记。有没有一种简单的方法可以将两者之一更改为使用其他自定义模板标签?


阅读 314

收藏
2020-03-25

共1个答案

一尘不染

对于Angular 1.0,你应该使用$ interpolateProvider api配置插值符号:http : //docs.angularjs.org/api/ng.$interpolateProvider。

这样的事情应该可以解决问题:

myModule.config(function($interpolateProvider) {
  $interpolateProvider.startSymbol('{[{');
  $interpolateProvider.endSymbol('}]}');
});

请记住两件事:

  • 混合使用服务器端和客户端模板很少是一个好主意,应谨慎使用。主要问题是:可维护性(难于阅读)和安全性(双重插值可能会暴露出新的安全性向量-例如,虽然逃避服务器端和客户端模板可能是安全的,但结合起来可能并不安全)。
  • 如果你开始使用{{ }}在其模板中使用的第三方指令(组件),则你的配置将破坏它们。(修复中)
    尽管除了警告人们外,我们无法对第一个问题采取任何措施,但我们确实需要解决第二个问题。
2020-03-25