我有一個問題與挖空計算observable和JSON函數。我創建了一個Fiddle Example。在這個例子中,我有一個模型:問題ko.toJSON和計算可觀察
function VM()
{
this.Name = ko.observable("Tom");
this.Age = ko.observable(23);
//I want this computed evaluate only
//when name will change. So i put Name observable
//inside it.
ko.computed(function(){
this.Name();
//send only after dom is initiallized
if(initialized){
Server.Sync(this);
}
}, this).extend({ throttle: 500 });
}
function Server()
{
}
Server.Sync = function(data)
{
alert("send");
var jsonData = ko.toJSON(data); //This is the problamatic code which..
//increases the computed dependency. After executing this code the..
//computed function is now evaluates on Age also which i do not want.
//send jsonData
};
在這個模型中,我想我的計算僅評估當用戶將更改名稱觀察特性。其工作正常,直到Server.Sync函數執行完畢。在同步函數我從ViewModel對象創建JSON對象通過toJSON函數和此代碼首先打開observables並比創建它的Clean Js對象比通過Stringify它將創建JSON。現在我認爲在展開觀察數據時,Age可觀察到的依賴性會增加我計算的可觀察值,現在它會在用戶更改Age屬性時進行評估。
如果我的解釋是正確的,我該如何避免這種情況?
年齡是否有可觀察到?看起來你不想觀察這些數據的變化。 – 2013-03-08 18:09:27