我對Knockout.js相當陌生,所以我可能只是缺少一些東西。我正在嘗試創建一組按鈕,其中的'selected'狀態反映了數組中項目的子值。將css類綁定到Observable Array item.chosen與knockout.js的值
見本小提琴: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的初始顯示是正確的。看來我可以使click事件更改observable數組中的值而不會出現問題。顯示的div不會改變css類來響應這個。
我意識到,作爲數組中項目的對象的孩子本身並不是可觀察的。但是,我不應該呼籲valueHasMutated()強制該問題?這可能也不是完成行爲的最優雅的方式。
任何人都想幫助一個學習JavaScript的人出去?
兩個優秀的答案,謝謝!我選擇安德魯的主要原因是我從中學到了更多關於淘汰賽的信息,但都是不錯的選擇。我會使用RP的方法來獲得更通用的「任何可以選擇的」場景,但是我認爲將它作爲單個對象可能更適合我的使用。 – Chris