KnockoutJS 从另一个函数内部调用 ViewModel 函数

KnockoutJS Calling ViewModel function from inside another function

我有以下 ViewModel,其中我的功能很少。我正在尝试调用位于同一 ViewModel 中的另一个函数。

这是我的 ViewModel:

var UploadFileListVewModel = function() {
var self = this;

里面我有一个初始化函数:

//initialize view model
this.init = function () {
    $.ajax({
        url: '/Files/LastUploadedFiles',
        type: 'POST',
        cache: false,
        data: {},
    }).done(function (result) {

        //doing stuff 
    });
}   

稍后我执行删除文件操作,一旦完成我想再次 运行 我的初始化功能

self.removeFile = function(item)
{
    $('#fileModal').modal('hide'); //closing modal dialog       

    $.ajax({
        //url: '@Url.Action("RemoveFile", "Files")',
        url: '/Files/RemoveFile',
        type: 'POST',
        data: { 'file_id': self.fileToRemoveId() },
        cache: false
    }).done(function (result) {

    //doing stuff 
    this.init();

    });     
}

我遇到错误 this.init() is not a function

如果有人能指出正确的方向,告诉我如何调用此 init() 函数或提出任何解决方法,我将不胜感激。

回调函数中的 this 关键字不是您的 ViewModel。这就是您创建 self 的原因,因此您可以在事件、数组、回调函数等中使用它。

因此,您应该将代码更改为 self.init()