0

いくつかのデータを更新している間、私のWebアプリでは、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に戻しています。それに基づいて、私の回転するホイールが現れたり消えたりするはずです。

しかし、これは機能していません。

前もって感謝します

4

1 に答える 1

1

thiscreateNewand関数内に別のコンテキストがあり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); 
    }); 
};
于 2013-01-10T10:44:56.033 に答える