2016-03-01 85 views
0

我得從我的REST服務值並將其分配給淘汰賽觀察到淘汰賽值分配不工作

的代碼看起來像

mydata=$.ajax({ url: 'http://myserver:7101/MUDRESTService/rest/v1/mudstats?onlyData=true',
    
      type: 'get', 
      dataType: 'json',  
      success: function(output) {
  

        dailyMinRest = JSON.parse(mydata.responseText).items[0].AvgSession; 
        console.log(dailyMinRest) 
        sessionCountRest = JSON.parse(mydata.responseText).items[0].Sessions; 
      }
  
      }); 

      self.dailyMin = ko.observable(dailyMinRest); 

的問題是最後一行。如果我留在這裏,顯然沒有保證它在休息之後執行返回響應。但是,如果我將它移動到succss方法內部,那麼自變量不會被解析。

回答

5

創建dailyMin觀察到當你的​​Ajax請求通過調用觀察到的,通過在新的價值立即完成,然後更新:

self.dailyMin = ko.observable(); 
mydata=$.ajax({ 
    url: 'http://myserver:7101/MUDRESTService/rest/v1/mudstats?onlyData=true', 
    type: 'get', 
    dataType: 'json',  
    success: function(output) { 
     self.dailyMin(JSON.parse(mydata.responseText).items[0].AvgSession); 
    } 
}); 

順便說一句,我不知道爲什麼你打電話JSON.parse(mydata.responseText)代替在output中使用已解析的JSON響應,但我假設你知道你在那裏做什麼:-)。