在我的web应用程序,而我正在更新一些数据,我需要在网页中显示一些加载旋转gif。这是我的代码。
这是我的html代码
<img src="../../../../Content/images/submit-gif.gif" class="hidegif" data-bind="visible: isWaiting"/>
<button data-bind="click: createNew">Save</button>
在我的knockoutjs模型中我有这个
self.isWaiting = ko.observable(false);
self.createNew = function () {
this.isWaiting(true);
$.getJSON("/Admin/Material/GetFolders", function (allData) {
this.isWaiting(true);
var mappedFolders = $.map(allData, function (item) { return new Folder(item); });
self.folders(mappedFolders);
this.isWaiting(false);
}).success(function () { this.isWaiting(false); }).error(function () { }).complete(function () { this.isWaiting(false); }); ;
};
我有一个名为isWaiting的属性。在调用服务器之前,我将其设置为true。在完成和后续方法中,我将其设置回false。所以基于这个,我的纺车应该出现和消失。
但这不起作用。
Thanks In Advance
this
将在createNew
和callback
函数中具有另一个上下文。你应该使用self
而不是this
来访问视图模型的属性:
self.createNew = function () {
self.isWaiting(true);
$.getJSON("/Admin/Material/GetFolders", function (allData) {
self.isWaiting(true);
var mappedFolders = $.map(allData, function (item) { return new Folder(item); });
self.folders(mappedFolders);
self.isWaiting(false);
}).success(function () {
self.isWaiting(false);
}).error(function () {})
.complete(function () {
self.isWaiting(false);
});
};