淘汰价值分配不起作用

时间:2016-03-01 01:55:35

标签: javascript knockout.js

我必须从我的REST服务中获取一个值并将其分配给knockout observable

代码看起来像

   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方法内,那么自变量就不会被解析了。

1 个答案:

答案 0 :(得分:5)

立即创建dailyMin observable,然后在ajax请求完成后通过调用observable并传入新值来更新它:

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响应,但我会假设您知道自己是什么#39;在那里做: - )。