1

奇怪的问题。我有一个选择框绑定到一个更新 observable 的大数组。除了数组大小之外,没有什么花哨的。这是一个带有完整示例的jsfiddle :http: //jsfiddle.net/mikebruner/s2SFj/11/

这是带有简化版本的数组的代码:

标记

Value: <span data-bind="text: technicalOwner"></span>
<p>
Field: 
<select name="technicalOwner" id="technicalOwner" 
    data-bind="options: technicalOwnerOptions
                                , optionsCaption: 'Select...'
                                , optionsText: 'Value'
                                , optionsValue: 'Name'
                                , value: technicalOwner">
</select>    

型号

function CommercialEntryViewModel() {
    var self = this;

    self.technicalOwner = ko.observable("");
    self.technicalOwnerOptions = [{"Name":"aapr","Value":"aapr"},{"Name":"abf","Value":"abf"}  .... ];  
};

使用IE10,当我使用鼠标从选择框中选择一个值时,observable 会更新并且一切正常。但是,如果使用键盘在该字段中选择一个值,select-box然后按 Tab 键关闭该字段,则 IE10 会崩溃。

其他一些观察:

这在 Chrome 中运行良好。看来是IE10的问题。我没有其他版本的 IE 可供我测试,尽管它似乎在兼容模式下也会崩溃。

如果我取出 observable,一切正常。

如果我减少数组中的项目数,一切正常。

我承认 javascript 数组当然可以收紧(这通常来自被序列化为 JSON 的对象)。但我认为它在语法上是可以的,并且仍然应该工作。

4

1 回答 1

0

我发生了完全相同的事情,升级到 Knockout 版本 3.0.0 解决了这个问题。

于 2014-01-02T23:56:33.807 回答