1

奇妙な問題。オブザーバブルを更新する大きな配列にバインドされた選択ボックスがあります。これについては、配列のサイズ以外に特別なことはありません。完全な例を含む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を使用して、マウスを使用して選択ボックスから値を選択すると、オブザーバブルが更新され、すべて問題ありません。しかし、キーボードを使用して値を選択し、select-boxタブでフィールドから離れると、IE10 がクラッシュします。

その他の観察事項:

これは Chrome で問題なく動作します。IE10 の問題のようです。互換モードでもクラッシュするようですが、テストできる他のバージョンの IE はありません。

オブザーバブルを取り出すと、すべて正常に動作します。

配列内のアイテムの数を減らすと、すべて正常に機能します。

JavaScript配列が確実に強化される可能性があることは認めます(これは通常、JSONにシリアル化されたオブジェクトから発生します)。しかし、構文的には問題ないと思いますし、それでも機能するはずです。

4

1 に答える 1

0

まったく同じことが起こっており、Knockout バージョン 3.0.0 にアップグレードすると問題が解決しました。

于 2014-01-02T23:56:33.807 に答える