英文:
Property assignment expected.javascript when combined to jinja
问题
使用Flask中的一个页面上的JavaScript函数,我需要使用从Python传递的Jinja变量。
实际上它运行良好,但问题是VS Code 在这里的括号上显示了一个错误"Property assignment expected.javascript":
{{ content|tojson }}
当前完整的脚本是:
function printData(nb) {
const jsArrayOfItems = {{ content|tojson }};
var str = JSON.stringify(jsArrayOfItems[nb][1], null, 2);
document.write(str)
}
content是从Python Flask路由传递的列表。
我已经看过此帖1,但似乎我与作者有相同的问题,即如果我使用引号,jsArrayOfItems将变为空值而不是列表。
所以如果你有任何关于如何避免这个问题的想法,我会很高兴有人告诉我。谢谢!
英文:
Using javascript functions on one of my pages in flask, I need to use the jinja variables passed from python.
It actually works well but the thing is that VS Code shows me an error "Property assignment expected.javascript" on the brackets here :
{{ content|tojson }}
The current complete script is :
function printData (nb) {
const jsArrayOfItems = {{ content|tojson }};
var str = JSON.stringify(jsArrayOfItems[nb][1], null, 2);
document.write(str)
}
with content a list passed from the python flask route.
I have already seen this post but it seems that I have the same problem than the author, which is that if I use quotation marks jsArrayOfItems becomes an empty value instead of the list.
So if you have any idea about how to avoid this problem I'd be glad someone tell me.
Thanks !
答案1
得分: 1
在你的代码中,变量 content
被视为一个字符串,并且没有被转换为有效的JavaScript对象。你可以使用 json.parse()
函数来解析JSON字符串。
修改代码如下:
const jsArrayOfItems = JSON.parse('{{ content|tojson|safe }}');
英文:
In your code, the variable content
is regarded as a string, and it is not converted into an effective JavaScript object. You can use the json.parse()
function to parse the json string
Modify the code
const jsArrayOfItems = {{ content|tojson }};
to
const jsArrayOfItems = JSON.parse('{{ content|tojson|safe }}');
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论