使用Django和AngularJS——模板标签冲突问题

21 浏览
0 Comments

使用Django和AngularJS——模板标签冲突问题

我想在Django中使用AngularJS,然而它们都使用{{ }}作为它们的模板标签。是否有一种简单的方法可以更改其中一种来使用其他自定义模板标签?

admin 更改状态以发布 2023年5月22日
0
0 Comments

你可以尝试使用 verbatim Django 模板标签,
像这样使用:


{% verbatim %}
    

10 is {{ 5 + 5 }}

{% endverbatim %}

0
0 Comments

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

像这样的配置应该可以解决问题:

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

请记住两件事:

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

虽然第一个问题我们不能做什么,除了警告人们,但我们确实需要解决第二个问题。

0