我正在使用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((<Orderitem u'Lenovo Vibe K5 (Gold, 16GB)'>, datetime.datetime(2016, 9, 12, 16, 26, 47), u' 402-7679899-5460354', u'Lenovo Vibe K5 (Gold, 16GB)', 7000.0, 0.0, 1L, u'9963802143', u'nagaraju', 0.0, 0.0, UUID('377245de-ebaa-4fa9-ad70-8fa28ad602ae'))) type="submit" id= 'receive-btn' value="Receive" >
对象似乎对我好,但我得到了他的错误:
Uncaught SyntaxError: Unexpected token <
出现这种情况的原因是什么? 我是Javascript和Jinja的新手。一般来说如何将这个对象传递给javascript函数?
答案 0 :(得分:2)
看起来您正在尝试将字符串传递给JavaScript中的execute
函数。
JavaScript中的字符串文字必须包含"
或'
。
由于您尚未这样做,因此数据的第一个字符(<
)被视为小于运算符,不允许将其作为第一个字符。调用函数的()
。
引用你的字符串。
(当你的HTML属性值包含空格和某些其他字符时,你还需要引用它们。)
onclick="execute("{{ x }}")"
注意:如果您的数据包含"
字符,则会中断。在将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属性可能应该有引号。