2016-05-12 105 views
0

我想通过视图呈现给HTML页面的django对象迭代。 我以下述方式限定的角2成分: -如何在Angular 2模板中使用Django模板?

@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未识别它。有什么办法可以解决这个问题吗?

+0

您应该使用'ngServices'调用'categories'并将数据存储在'ngModel'中的一个数组。 –

+0

即使我想过这样做,但我如何获得类别对象?没有明确的API要求。当页面呈现时,我将它作为上下文传递。 – Subhajit

+0

用你的Django模板定义一个javascript var,然后! – sahuk

回答

0

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

AngularJS模块(app.js)

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

页面

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

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

+0

这工作,如果我试图在Django模板中显示有角度的东西。我想要实施的恰恰相反。 – Subhajit

+0

您是否想在浏览器中使用Angular 2生成Django模板并发送给服务器进行解析? – sahuk

+0

是的。就像我在上面的代码片段中显示的那样。 – Subhajit

0

您可以同时获得Django和angular2模板工作没有任何冲突。

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

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