属性赋值预期。当与Jinja结合使用时,javascript

huangapple go评论63阅读模式
英文:

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 }}');

huangapple
  • 本文由 发表于 2023年3月7日 22:11:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/75663078.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定