6
このノックアウト2.1のバインディング式はFirefoxとIE9ではうまく動作しますが、IE8互換モードでエラー ""、識別子:文字列または文字列 ":IEより9より前のバージョンのIEでエラーが発生しました
<div data-bind="template: {
if: myDataModel,
data: myDataModel,
afterRender: setup(myDataModel) }">
Iは、デバッガの下で実際の場所を見つけ、それがコード(ノックアウト-2.1.0.debug.js)のこのラインは次のとおり
return new Function("sc", functionBody)
functionBody
は、上記の式に等しい文字列です。スペースやキャリッジリターン文字で試してみましたが、何も役に立ちません。同じ結果:IE9互換モード以外のブラウザでも正常に動作します。
ご意見はありますか?
あなたは全く正しいですが、今式に ' 'if''とそれが正常に動作します。 Knockout.jsのドキュメントでは、Webサイトhttp://knockoutjs.comの 'if'ステートメントのすべてのサンプルが引用されていませんが、フレームワークはIE6 +から正しく動作しないと宣言していますが、 – YMC
@YMC:内部でノックアウトは、バインディング内のすべてのトップレベルプロパティがクォートされることを保証します。ネストされたオブジェクトリテラルでは同じことはできません。そのため、通常のノックアウトの 'if'バインディングは問題なく動作するように見えます。これらのオブジェクトのプロパティ名をクォートするだけでよいでしょう。 –
@Jeff Mercado私が見ているが、私の不満はエラーメッセージの欠如ではなく、自分のWebサイトにある自分のサンプルを引用していないということでした。 – YMC