2014-04-23 24 views
4

我在我的應用程序中使用AngularJS + Flask,我想知道「生成」一個url的最佳方式,並且不要爲此寫任何硬代碼url。我有這種情況:Flask + AngularJS - 使用url_for()

*考慮到我爲AngularJS使用[[]]而不是{{}}。

<dd ng-repeat="item in myList"> 
    <span ng-click="doAction('{{ url_for('my_url', id="[[item.id]]") }}')"> 
     [[item.name]] 
    </span> 
</dd> 

這不會工作,因爲Jinja2的url_for()AngularJS之前執行的過程,所以 「[[item.id]]」 將不會被AngularJS在時間取代。

的問題是,我不想硬編碼到這樣寫:

<span ng-click="doAction('/my_url/[[item.id]]')"> 
    [[item.name]] 
</span> 

我在AngularJS很新,也許所有我的做法是錯誤的,所以,沒有任何人有任何想法是什麼是單擊元素的最佳方式,請使用基於單擊元素上下文的URL進行請求?

回答

1

我剛纔遇到了這個問題。我結束了使用Jinja2的{% set ... %}

這就是我解決它的方法,適合你的例子。

<dd ng-repeat="item in myList"> 
    {% set url = url_for('my_url', id="[[item.id]]") %} 

    <span ng-click="doAction('{{ url }}')"> 
     [[item.name]] 
    </span> 
</dd> 
1

在我的情況下, 我試圖動態創建URL

我解決我的問題如下(注:我已經換了角的語法{[X]}:

<ul> 
    <li ng-repeat="x in projects"> 
     {[x.title]} 
     {% set url = url_for('static',filename="img/") %} 

     <img src="{{url}}{[x.img]}"> 
    </li> 
</ul> 
相關問題