Chrome Uncaught SyntaxError: Unexpected token < Jinja Template

Chrome Uncaught SyntaxError: Unexpected token < Jinja Template

我正在使用神社模板。以对象作为参数调用函数。 我是来电者。

<input class="btn btn-primary center-block" onclick=execute( {{ x }} ) type="submit" id= 'receive-btn' value="Receive" >

实际调用代码时,这就是传递对象的方式。

<input class="btn btn-primary center-block" onclick=execute((&lt;Orderitem u&#39;Lenovo Vibe K5 (Gold, 16GB)&#39;&gt;, datetime.datetime(2016, 9, 12, 16, 26, 47), u&#39; 402-7679899-5460354&#39;, u&#39;Lenovo Vibe K5 (Gold, 16GB)&#39;, 7000.0, 0.0, 1L, u&#39;9963802143&#39;, u&#39;nagaraju&#39;, 0.0, 0.0, UUID(&#39;377245de-ebaa-4fa9-ad70-8fa28ad602ae&#39;))) type="submit" id= 'receive-btn' value="Receive" >

这个对象对我来说似乎没问题,但我得到了他的错误:

Uncaught SyntaxError: Unexpected token <

发生这种情况的原因是什么? 我是 Javascript 和 Jinja 的新手。通常如何将此对象传递给 javascript 函数?

onclick 属性可能应该有引号。

您似乎正试图将字符串传递给 JavaScript 中的 execute 函数。

JavaScript 中的字符串文字必须用 "'.

包围

由于您没有这样做,您数据的第一个字符 (<) 被视为 小于运算符 ,这是不允许的() 中调用函数的第一个字符。

引用您的字符串。

(当 HTML 属性值包含空格和某些其他字符时,您还需要引用它们)。

onclick="execute(&quot;{{ x }}&quot;)"

注意:如果您的数据包含 " 个字符,这将中断。在将 x 放入模板之前先将其转换为 JSON。