我遇到了checked
綁定問題:點擊複選框不會更新可見狀態,儘管依賴關係可見性指示值已更改。knockoutjs檢查綁定
下面是HTML片段:
<input type="checkbox"
data-bind="checked: document().selected"
title="Select one or more documents to find more similar ones" >
這注定我Posting
類的實例,有一個document()
觀察到。文檔類的相關部分如下:
function Document(data, topic) {
this.id = ko.observable(data.id);
this.url = ko.observable(data.url);
this.title = ko.observable(data.title);
/** Display state **/
this.selected = ko.observable(false);
ko.dependentObservable(function() {
console.log("Selected " + this.url() + " : " + this.selected());
}, this);
}
當我點擊複選框,控制檯打印是這樣的:
Selected http://somedomain.com/doc1.pdf : true
,但該複選框選中保留。
我使用jQuery 1.4.2和1.2.1淘汰賽
淘汰賽的其他方面似乎正常工作。當我像this那樣在jsffiddle中隔離問題時,它按預期工作。關於接下來我應該測試什麼的想法?
基因
更新:2011年12月12日2:54 PST:
@RP尼邁耶:我有很多其他dependentObservable
實例;該metnions selected()
唯一一個看起來是這樣的:
this.selectedDocuments = ko.dependentObservable(function() {
return this.documents().findAll(function(doc) {return doc.selected()});
}, this);
findAll
做什麼你mighht認爲。
據我所知,發生的情況是,當複選框被觸發時,selected
observable被設置爲true,觸發複選框,從而觸發dependentObservable,它打印正確的值。但是,視圖不會更新。儘管如此,observable認爲它被設置爲true,因爲隨後在同一個(取消選擇的)複選框上的點擊不會產生任何進一步的控制檯輸出。
UPDATE 2011年12月12日,下午9:45 PST:
我能夠重現這一jsfiddle問題。如果您編輯封閉div上的點擊處理程序,則複選框將正常工作。有沒有解決辦法,或者這是一個已知的問題?
我懷疑這實際上是你的問題,但要確保您關閉標籤。你的'input'標籤沒有關閉。這確實會導致KO與其他元素的問題。 –
我嘗試使用''和''變種,併產生相同(不正確)的結果。 –
你有任何其他事件處理程序在頁面上(實時/委託)或任何其他點擊複選框時觸發。其他HTML與小提琴類似嗎? –