2014-06-12 20 views
0

我有一個knockout.js視圖,它有一些文本框和下拉菜單。knockout.js阻止第一個值的變化

當用戶更改值i保存數據以$後

爲了這個,我創造了一些計算propties像

self.subjectChanged ko.computed(function() { 

     var subject self.subject(); 
//save... 

但是,這也觸發時主題從數據庫加載已知的和第一次設置。 這方面的最佳做法是什麼?

一個類似的問題是,我有一個函數getdata()取決於兩個屬性。 現在開始這種方法被提出兩次(每個屬性)

什麼是處理這個szenarios的最佳實踐?

回答

0

這可能不是最佳實踐,但在過去,我將一個加載的變量綁定到vm,並且當數據從服務器完成加載時,我將其設置爲true;

在我的計算結果中,我會圍繞實際完成工作的代碼來檢查加載的if。雖然計算可能有點棘手,但您可能需要引用if之外的可觀察物,以確保它們正確地開火。這樣做的

com = ko.computed(function(){ 
    if(loaded){ 
     var subject = self.subject(); 
    } 
    // reference observable outside of if to ensure the computed fires when the observable changes 
    self.subject(); 
}); 
+0

我也想過這個,但我通過json post得到一些數據。 (2種子項),所以我需要爲每個自己的變量 –