我写了一些js:
var folersTreeMgr = {
sendDeleteFolderRequestAndUpdateFoldersTree: function () {
...
} else {
createAjaxRequest("Manager/DeleteLocation", {
'locationId': folder_minimal_descriptor.locationId
}).done(function (isSucceeded) {
if (isSucceeded) {
folersTreeMgr.deleteFolderInFoldersTree(); // works
this.deleteFolderInFoldersTree(); // doesn't work
deleteFolderInFoldersTree(); // doesn't work
}
//TODO: else: error
});
}
},
deleteFolderInFoldersTree: function () {
$("#jstree").jstree("remove", null);
}
};
Run Code Online (Sandbox Code Playgroud)
为什么我会出现"缺失功能"错误
小智 6
因为你在this回调中使用它有不同的含义.
您可以this在变量中引用外部,然后在回调中使用它.
var folersTreeMgr = {
sendDeleteFolderRequestAndUpdateFoldersTree: function () {
var self = this; // cache it
...
} else {
createAjaxRequest("Manager/DeleteLocation", {
'locationId': folder_minimal_descriptor.locationId
}).done(function (isSucceeded) {
if (isSucceeded) {
self.deleteFolderInFoldersTree(); // works
}
});
}
},
deleteFolderInFoldersTree: function () {
$("#jstree").jstree("remove", null);
}
};
Run Code Online (Sandbox Code Playgroud)
或$.proxy用来保持this价值......
createAjaxRequest("Manager/DeleteLocation", {
'locationId': folder_minimal_descriptor.locationId
}).done( $.proxy(function (isSucceeded) {
if (isSucceeded) {
this.deleteFolderInFoldersTree(); // works
}
},this) );
Run Code Online (Sandbox Code Playgroud)
这将返回一个函数,该函数具有$.proxy绑定到作为第一个参数传递的函数的第二个参数.
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |