0

ノックアウトjsでjqueryを使用するMVC3プロジェクトの1つで、ノックアウトjsを使用してリストボックスをバインドしています。

リスト ボックスにいくつかのアイテムがある場合、アイテムをクリックするとすぐにアイテムが選択されますが、リスト ボックスに多数のアイテム (6000 以上) がある場合、アイテムを選択するのに 10 ~ 15 秒かかります。

ユーザーはその 10 ~ 15 秒間に何が起こっているかを認識していないため、ビジー インジケーターを実装することを考えました。

これは可能ですか?これのためのイベントはありますか?より良い方法はありますか?

4

2 に答える 2

0

select要素がバインディングを使用している場合は、optionsクリックするたびにバインディングが更新されている可能性があります。リリースされたばかりのバージョン 2.3.0 または 3.0.0 ベータ版へのアップグレードを試すことができます。私はそれが問題を解決すると確信しています。

于 2013-07-11T07:55:22.953 に答える
0

この
ViewModelには次の構築を使用できます

var viewModel = new function()
{
    var self = this;
    self.items = ko.observableArray(); // your items
    self.waitingResponse = ok.observable(false); // true - when you are waiting for response
    self.sendRequest = function() 
    {
       self.waitingResponse(true); // this will hide table with items
                                   // and disaplay "Waiting for response..."
       $.ajax(
       {
          // 
          complete: function() 
          {
             self.waitingResponse(false); // this will display table with items
                                          // and hide "Waiting for response..."
          }
       })
    }
}  

意見

<div data-bind="visible : waitingResponse()">
    <span>Waiting for response...</span>
</div>
<div data-bind="visible : !waitingResponse()">
    <table>
        <!-- table with items -->
    </table>
</div>
于 2013-07-11T07:55:55.757 に答える