Flask + AngularJS - 使用url_for()

4
我在我的应用程序中使用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请求呢?

2个回答

1
在我的情况下,我试图动态创建URL。
我通过以下方式解决了我的问题(注意:我已经将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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接