2016-05-12 101 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瞭解更多詳情。