我正在使用Flask构建一个网站。 我还使用资产来管理我的js和css资源。 现在我想将一些变量传递给我的js脚本。
这是我在第一次烧瓶时注册资产的代码(__ init __。py):
download_js = Bundle("applog/download.coffee", filters=["jinja2", "coffeescript"],
output="gen/js/download.js")
assets.register("download_js", download_js)
这是我在模板文件中使用资产的代码(download.html):
{% assets "download_js" %}
<script>
require(["{{ ASSET_URL}}"]);
</script>
{% endassets %}
并在视图文件(“view.py”)中,我传递了这样的varibales:
return render_template("download.html", apps=apps, versions=versions)
我想在js文件中使用变量“apps”,如下所示:
DownLoadSelector("appList", {{ apps }})
我该怎么做?
答案 0 :(得分:1)
您的资产是静态的,您无法轻松更改它。您可以为webassets添加过滤器,但这是一个奇怪的黑客。
要做你想做的事,你可以做到:
{% assets "download_js" %}
<script>
window.apps = {{ apps }};
require(["{{ ASSET_URL}}"]);
</script>
{% endassets %}
在您的代码中,您只需致电apps
:
DownLoadSelector("appList", window.apps)