javascript - SyntaxError: 预期的表达式,得到 '&' (Django)
问题描述
我有一个以 Django 为后端的分析仪表板。在 Python 中分析数据后,我将发送一个带有名称和显着性的字典。
var things_mentioned = {{entity.name}};
var things_salience = {{entity.salience}};
这会产生错误:
SyntaxError: expected expression, got '&'
下面的代码不会产生任何错误并且可以完美运行:
var things_mentioned = ['noodles', 'food', 'Chinese', 'flavor', 'umami flavor'];
var things_salience = {{entity.salience}};
当我尝试{{entity.name}}
在纯 HTML 页面中查看值时,它会准确显示这个
['面条','食物','中国','风味','鲜味']。
此外,我的整个程序中没有一个“&”。
解决方案
它将尝试对字符串进行 HTML 转义。您可以使用 JavaScript 转义。最安全的方法可能是使用|json_script
模板过滤器 [Django-do]。因此,您可以将其用作:
{{ entity.name|json_script:"things_mentioned" }}
var things_mentioned = JSON.parse(document.getElementById('things_mentioned').textContent);
推荐阅读
- ruby - 将哈希序列化为类似于 json 的字符串,在 Ruby 中使用单引号
- android - 具有单一活动的应用中的 AdMob 插页式广告
- c# - 让 Cortana Skill 听得更久
- javascript - 当我在以前的 JS 中添加此 id 时如何获取 document.getElementById
- c++ - 有没有办法显式销毁所有在给定 boost::asio::io_context 上挂起的处理程序?
- python - Networkx 中的“计数”边缘属性是什么?
- javascript - 函数过滤器在 d3js 中没有按预期工作
- php - WooCommerce API:使用过滤器列出产品(例如:没有虚拟)
- node.js - 如何在节点js中传递变量?
- python-2.7 - 如果我们有使用 python scrapy 的凭据,如何抓取已登录的网页?