• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

将Django的字符串列表传递给JS作为数组

JavaScript 来源:useruser 3次浏览

目标:我想传递Django中的字符串列表以将JS作为字符串数组模板并获取数组中的每个字符串的索引。将Django的字符串列表传递给JS作为数组

问题:Javascript indexOf()正在计算每个字符(例如字母,单引号和括号)。我在下面的尝试是基于this,this和this。

代码1:我尝试escapejssafe过滤器,但indexOf()在数组中返回2的第一项(应为0)。

#views.py 
list = [#utf-8 encoded strings] 
return render(request, template, {'list': list}) 

#template JS 
$('#id').ready(function() { 
var array = "{{list|escapejs}}"; 
console.log(array.indexOf('{{obj}}')); 
#obj is item in list}); 

代码2:也试过用json.dumps()encode('utf8')json.loads()的问题仍然存在。

#views.py 
list = [#utf-8 encoded strings] 
list = json.dumps(list, ensure_ascii=False).encode('utf8') 
return render(request, template, {'list': list}) 

#template JS 
$('#id').ready(function() { 
var array = "{{list}}"; 
console.log(array.indexOf('{{obj}}')); 
#obj is item in list}); 


===========解决方案如下:

正如肯达提到了一个评论,这一点:

var array = "{{list}}"; 

会让array包含列表的表示形式的字符串(无论是Python列表本身或者它的JSON表示)。你想要的是甩掉你列表JSON(以确保你有你的Python列表的本地JavaScript表示),你已经尝试过,并避免在JS代码片段添加引号:

var array = {{list}}; 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)