1

我正在构建一个 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'));
})

现在我希望在控制台中引用原始答案对象,而不是我得到了相当无用的字符串“[object Object]”。当用户选中复选框时,我有什么方法可以检索原始对象吗?

编辑:另见http://jsfiddle.net/sebastianv89/jQBpN/

4

1 回答 1

0

我认为问题可能是 HTMLdata-属性用于存储文本数据,而不是实际的 Javascript 对象,因此使用 Mustache 模板尝试设置data-answer只会导致您的答案对象的文本表示被存储

您可以尝试的另一种方法是将您的答案对象缓存在地图中(作为 JS 对象)并使用您的data-answer属性将键存储到该地图中。

于 2013-01-07T18:55:26.743 回答