Flask + AngularJS - 使用url_for()
我在我的应用程序中使用 AngularJS 和 Flask,我想知道最好的方法来“生成”一个网址,而不是写死网址。我遇到了这样的情况:
*考虑到我在 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 还很陌生,也许我的方法都是错的,所以,有没有人知道最好的办法,让一个元素被点击后,根据被点击元素的上下文来发起请求?
2 个回答
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>
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>