私は Knockout.js にかなり慣れていないので、何かが足りないだけかもしれません。「選択された」状態が配列内の項目のサブ値を反映するボタンとして機能する div のセットを作成しようとしています。
このフィドルを参照してください: http://jsfiddle.net/bleiddyn/RepnY/
抜粋:
$('.tag-cell').click(function() {
var ele = event.srcElement.textContent;
var match = ko.utils.arrayFirst(self.Tags(), function(item) {
if (ele === item.title) {
item.chosen = !item.chosen;
return true;
}
return false;
});
match.chosen = true;
self.Tags.valueHasMutated();
});
div の初期表示は正しいです。クリックイベントでオブザーバブル配列内の値を問題なく変更できるようです。ただし、表示される div はこれに応じて css クラスを変更しません。
配列内の項目であるオブジェクトの子は、それ自体では観察できないことに気付きました。ただし、 valueHasMutated() への呼び出しで問題が発生することはありませんか? これは、動作を実現するための最も洗練された方法ではない可能性があります。
JavaScript を学んでいる人を助けたい人はいますか?