我必须从我的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方法内,那么自变量就不会被解析了。
答案 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;在那里做: - )。