2014-04-23 23 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> 
相关问题