我有以下ViewModel,其中我的功能很少。我正在尝试调用位于同一ViewModel中的另一个函数。
这是我的ViewModel:
var UploadFileListVewModel = function() {
var self = this;
里面我有一个init函数:
//initialize view model
this.init = function () {
$.ajax({
url: '/Files/LastUploadedFiles',
type: 'POST',
cache: false,
data: {},
}).done(function (result) {
//doing stuff
});
}
稍后我会执行删除文件操作,一旦完成,我想再次运行我的init函数
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()函数或建议任何解决方法,我真的很感激。
答案 0 :(得分:2)
回调函数中的this
关键字不是您的ViewModel。这就是你创建self
的原因,所以你可以在事件,数组,回调函数等中使用它。
因此,您应该将代码更改为self.init()
。