小编典典

AngularJS 与 Django - 模板标签冲突

all

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


阅读 66

收藏
2022-04-19

共1个答案

小编典典

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

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

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

请记住两件事:

  • 混合服务器端和客户端模板很少是一个好主意,应该谨慎使用。主要问题是:可维护性(难以阅读)和安全性(双插值可能会暴露一个新的安全向量 - 例如,虽然服务器端和客户端模板本身的转义可能是安全的,但它们的组合可能不安全)。
  • {{ }}如果您开始使用在其模板中使用的第三方指令(组件),那么您的配置将破坏它们。(修复待定

虽然对于第一个问题我们无能为力,除了警告人们,我们确实需要解决第二个问题。

2022-04-19