如何在Angular中使用Flask中的`render_template`?

时间:2016-06-06 06:40:12

标签: javascript angularjs python-3.x flask

我想要完成的是不同的Angular Material标签的不同路线。我已尝试从模板中直接调用Flask,如下所示,我似乎无法从Angular调用render_template。我还尝试将{{ [stuff] }}转移到{{ "{{ [stuff] }}" }}有没有办法做到这一点,我还没找到?受影响的代码是:

$stateProvider
.state("dashboard", { abtract: true, url:"/dash", templateUrl: {{ render_template('partials/tabs/Dashboard.html') }} })
.state("dashboard.commands", { url: "/dash/commands", templateUrl: {{ render_template('partials/tabs/Commands.html') }} })
.state("dashboard.support", { url: "/dash/support", templateUrl: {{ render_template('partials/tabs/Support.html') }} })

2 个答案:

答案 0 :(得分:0)

您无法在AngluarJs脚本中调用服务器端函数。服务器' API仅适用于给定URL上的GET / POST请求。 templateUrl可能只是一个网址,例如'partials/tabs/Support.html'然后 Flask服务器,当被要求提供网页时,会呈现模板。

那,或者我错过了您的请求,在这种情况下,欢迎提供更多细节。

答案 1 :(得分:0)

您是否尝试过使用烧瓶的url_for方法?它根据相应的视图功能自动生成正确的URL。所以你可能需要的是:

$stateProvider
.state("dashboard", { abtract: true, url:"/dash", templateUrl: {{ url_for('show_dashboard') }} })
.state("dashboard.commands", { url: "/dash/commands", templateUrl: {{ url_for('show_commands') }} })
.state("dashboard.support", { url: "/dash/support", templateUrl: {{ url_for('show_support') }} })

在您的视图(views.py或其他)中,您可以像这样定义这些函数:

@app.route('/partials/tabs/Dashboard.html')
def show_dashboard():
    render_template('partials/tabs/Dashboard.html')

@app.route('/partials/tabs/Commands.html')
    def show_commands():
        render_template('partials/tabs/Commands.html')

@app.route('/partials/tabs/Support.html')
    def show_support():
        render_template('partials/tabs/Support.html')