我正在构建一个Web应用程序,我想在其中显示一个复杂的模型(名为Answer)。我使用Mustache模板格式化数据,但现在我遇到的问题是我无法将任何复杂数据附加到生成的html中,这通常可以使用jQuery的.data()方法。
我当前(不正确)的实现应该展示我想要实现的目标:
// (part of) the template
{{#answers}}
<input type="checkbox" data-answer="{{.}}">{{text}}
{{/answers}}
// js on the page
$(document).on('change', 'input[type="checkbox"]', function (event) {
console.log($(this).data('answer'));
})
现在我希望在控制台中引用原始的Answer-object,而不是使用相当无用的字符串“[object Object]”。当用户选中复选框时,我有办法检索原始对象吗?
答案 0 :(得分:0)
我认为问题可能是HTML data-
属性用于存储文本数据,而不是实际的Javascript对象,因此使用Mustache模板尝试设置data-answer
只会导致文本表示您存储的答案对象
您可以尝试的另一种方法是将答案对象缓存在地图中(作为JS对象),并使用data-answer
属性将密钥存储到该地图中。