1

複雑なモデル(Answerという名前)を表示したいWebアプリケーションを構築しています。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への参照を期待していましたが、代わりに、かなり役に立たない文字列「[objectObject]」を取得しました。ユーザーがチェックボックスをオンにしたときに元のオブジェクトを取得する方法はありますか?

編集:http: //jsfiddle.net/sebastianv89/jQBpN/も参照してください

4

1 に答える 1

0

問題は、HTMLdata-属性が実際の Javascript オブジェクトではなく、テキスト データを保存するために使用されている可能性があるため、Mustache テンプレートを使用して設定しようとするdata-answerと、回答オブジェクトのテキスト表現のみが保存されることにあると思います。

試すことができる別のアプローチは、応答オブジェクトをマップに (JS オブジェクトとして) キャッシュし、data-answer属性を使用してそのマップにキーを格納することです。

于 2013-01-07T18:55:26.743 に答える