Chrome Uncaught SyntaxError:意外的令牌< Jinja模板

时间:2016-09-29 12:45:20

标签: javascript html jinja2

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

<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函数?

2 个答案:

答案 0 :(得分:2)

看起来您正在尝试将字符串传递给JavaScript中的execute函数。

JavaScript中的字符串文字必须包含"'

由于您尚未这样做,因此数据的第一个字符(<)被视为小于运算符,不允许将其作为第一个字符。调用函数的()

引用你的字符串。

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

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

注意:如果您的数据包含"字符,则会中断。在将x放入模板之前,请先将override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let dollars1 = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0] let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] // 1 - creating an array of data entries var yValues : [ChartDataEntry] = [ChartDataEntry]() for i in 0 ..< months.count { yValues.append(ChartDataEntry(x: Double(i + 1), y: dollars1[i])) } let data = LineChartData() let ds = LineChartDataSet(values: yValues, label: "Months") data.addDataSet(ds) self.lineChartView.data = data } 转换为JSON。

答案 1 :(得分:0)

onclick属性可能应该有引号。