我在我的应用程序中使用AngularJS + Flask,我想知道“生成”url的最佳方法,并且不为此编写任何硬代码URL。我有这种情况:
*考虑到我对AngularJS使用[[]]而不是{{}}。
<dd ng-repeat="item in myList">
<span ng-click="doAction('{{ url_for('my_url', id="[[item.id]]") }}')">
[[item.name]]
</span>
</dd>
这不起作用,因为Jinja2在AngularJS之前执行url_for()过程,因此“[[item.id]]”不会被AngularJS及时替换。
问题是,我不想写这样的硬代码:
<span ng-click="doAction('/my_url/[[item.id]]')">
[[item.name]]
</span>
我在AngularJS中很新,也许我的所有方法都是错误的,所以,有没有人知道点击元素的最佳方法是什么,根据点击元素的上下文使用URL发出请求?
答案 0 :(得分: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 :(得分:1)
就我而言, 我试图动态创建网址
我解决了我的问题如下(注意:我已将Angular的语法换成{[x]}:
<ul>
<li ng-repeat="x in projects">
{[x.title]}
{% set url = url_for('static',filename="img/") %}
<img src="{{url}}{[x.img]}">
</li>
</ul>