1
我發現如果計算的observable設置爲某個值,然後重新評估並返回null
,則表示前一個計算值正在綁定/ GUI中使用沒有更新。這看起來很奇怪,我想問我是否做錯了什麼,或者如果這是預期的行爲?Computed Observable設置爲null不更新GUI
一個例子(http://jsfiddle.net/LkqTU/18081/):
我使用的是可觀察到的計算,返回在css
結合使用的類名。綁定可以是一個類名或根本沒有類。模板:
<p data-bind="css: textColour">Coloured text</p>
的計算觀察到的第一個計算結果爲「綠色」,和彩色文本變綠(我定義的類「綠色」的CSS)。當計算出的觀測值重新評估並返回null
時,文本顏色仍然是綠色。
that.success = ko.observable(true);
that.textColour = ko.computed(function() {
if (that.success()) {
return 'green';
} else {
return null;
}
});
我返回null從綁定中刪除類。爲什麼這不起作用?我發現,如果我返回undefined
,或者什麼也沒有(也undefined
),綁定更新如預期和綠色被刪除。
這個問題並沒有阻止我前進,但是質疑我對KO的理解。任何人都可以對此有所瞭解嗎?
謝謝邁克爾 - 問題在https://github.com/knockout/knockout/issues/1468打開。 – steven