Luk*_*kas 4 python django google-app-engine templates
好的,这是一个问题,我有一个html模板,看起来像这样:
<script>
$(function() {
var vCountries = {{ visitedCountriesList }};
});
</script>
<..>
{{ visitedCountriesList }}
Run Code Online (Sandbox Code Playgroud)
从服务器我传递一个列表到这个项目,但渲染后它看起来像这样:
<script>
$(function() {
var vCountries = ;
});
</script>
<..>
[u'Afghanistan', u'Japan', u'United Arab Emirates']
Run Code Online (Sandbox Code Playgroud)
所以我的问题是 - 为什么?以及如何将其传递给javascript ...?
问题是数组的字符串表示形式不是有效的JavaScript.在u'
一开始是没有好处的.这个:
[u'Afghanistan', u'Japan', u'United Arab Emirates']
Run Code Online (Sandbox Code Playgroud)
应该这样:
['Afghanistan', 'Japan', 'United Arab Emirates']
Run Code Online (Sandbox Code Playgroud)
你有两个选择.在view函数中,将其编码为JSON:
render_to_response('my_view.html', {
'visitedCountriesList' : json.dumps(visitedCountriesList)
})
Run Code Online (Sandbox Code Playgroud)
或者创建一个可以使用的过滤器.请看这个例子.那么用法就是:
<script>
$(function() {
var vCountries = {{ visitedCountriesList|jsonify }};
});
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5105 次 |
最近记录: |