挖空值分配不起作用

knockout value assignment does not work

本文关键字:不起作用 分配 空值      更新时间:2023-09-26

我必须从我的 REST 服务中获取一个值并将其分配给 KNOCKOUT 可观察

代码看起来像

   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);

问题出在最后一行。 如果我保留在这里,显然无法保证它在 REST 返回响应后执行。 但是,如果我将其移动到 succss 方法内部,则不会解析 self 变量。

立即创建可观察量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 响应,但我假设你知道你在那里做什么:-)。