0

在我的一个使用带有 knockoutjs 的 jquery 的 MVC3 项目中,我使用 knockoutjs 来绑定列表框。

当列表框有几个项目时,单击一个项目会立即选择该项目,但是当列表框有很多项目(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 回答