2011-12-21 5 views
2

で例外をスローします。私のアプリケーションはFirefox 3.6とChromeで正常に動作します。私はIE8で例外を取得します。私はKnockoutJSのバージョン2.0 1.3 Beta を使用しています。子ビューモデルは、私は次のようなものを持っているのInternet Explorer 8

私は間違っていますか?

+0

ノックアウトの縮小バージョンを使用していますか?もしそうなら、圧縮されていないバージョンにショットを与え、ノックアウトのどの行がエラーであるのかを調べると、考えられる原因を突き止めるかもしれません。 –

+0

@AlexKey - 質問を更新します。 –

+0

@Daniel:私の間違い - Knockoutが 'indexOf()'の実装を持っていたことに気がつきませんでした。 –

答えて

2

私は2つの異なる問題がありました。

まず、配列の値を取得するためのメソッドを削除し、代わりに観測可能な配列を使用しました。

// Bad code for IE8 
this.viewModel.selections().indexOf(this); 

// this works 
this.viewModel.selections.indexOf(this); 

また、for属性を設定していました。 IEについての文句はforです。

// Bad code for IE8 
data-bind="attr: { for : logicalOperatorAndFieldId }" 

// Good code for IE8 
data-bind="attr: { 'for' : logicalOperatorAndFieldId }" 
+0

+1、私はIE8の 'class'がキーワードであると主張していました。' data-bind = "attr:{class:InitialClass}'それを解決しました: 'data-bind =" attr:{'class':InitialClass} ' – danludwig

+0

私は、attrバインディングで' for'を使ってIE8の問題に遭遇しました。時間を節約してくれました。ありがとう! – Ben

2

<span data-bind='text: Text' />のような自己終了タグを使用しないでください。また、ノックアウトを使用すると、IE8、IE7で問題を引き起こす可能性があります。

+0

これは私の質問に答えません。 –

関連する問題