如何在Angular 2模板中使用Django模板?

时间:2016-05-12 07:16:56

标签: python django typescript angular

我试图通过视图迭代渲染到HTML页面的django对象。 我以下列方式定义了Angular 2组件: -

@Component({

selector: 'search',
template:`

            <form [ngFormModel]="form" >
                  {% for category in categories_all %}
                  <li>
                    <div class="checkbox">
                      <label>
                        <input type="radio" name="category" 
                        id="category_{{category.id}}" 
                        value="{{category.name}}"
                        ngControl = "category"
                        #category="ngForm"
                        {% ifequal category.id|stringformat:"s"
                        param_values.category_id|stringformat:"s" %}
                         checked="checked"
                         {% endifequal %}
                         (click)="onClick()">
                 {{category.name}}
                      </label>
                    </div>
                  </li>{% endfor %}
            </form>
`,
providers:[ HTTP_PROVIDERS]


})

{% for category in categories_all %}是django模板语法,因此angular2不识别它。有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

使用{% verbatim %} Django模板标记,并将AngularJS模板代码放在{% verbatim %}{% endverbatim %}之间。

答案 1 :(得分:0)

您应该像这样定义自己的模板标签

AngularJS模块(app.js)

angular.module('myapp', []).config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');
});

页面

<a>[[ variable ]]</a> 

答案 2 :(得分:0)

您可以同时使用django和angular2模板而不会发生任何冲突。

如果您使用 Jinja2 ,则可以轻松更改Jinja2选项中的变量起始字符串。

请参阅我的blog post了解详情。