无法在 Ajax 的成功回调函数中访问视图模型的可观察对象和函数 - 敲除

Cannot access view model's observables and functions inside Ajax's success call back function- Knockout

以下是我为演示我面临的问题而创建的 fiddle: https://jsfiddle.net/divekarvinit/uyu87427/2/

this.getServiceListSuccess = function(response) {
    // The following line gives me error as 'this.testFunction is not a 
    //function'
    this.testFunction();
};

我正在尝试在 Ajax 调用的成功回调函数 (getServiceListSuccess) 中调用视图模型的 'testFunction'。

当我尝试调用该函数时,出现错误

'this.testFunction is not a function'

如何在 ajax 回调中访问视图模型可观察对象和函数?

我们将不胜感激。

这里是您问题的快速解决方案:https://jsfiddle.net/uyu87427/3/

var self = this;
this.getServiceListSuccess = function(response) {
    // The following line gives me error as 'this.testFunction is not a 
    //function'
    self.testFunction();
};

当你调用它时,在你的函数内部,你的作用域已经改变。因此,您需要保留对视图模型的引用。