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()
。
我有以下 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()
。