Flask + AngularJS - 使用url_for()

时间:2014-04-23 17:29:31

标签: python angularjs flask

我在我的应用程序中使用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 个答案:

答案 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>