すべての「最新の」ブラウザでは、次の機能が動作しますが、IE8では機能しません。
<!-- ko template: {if: $root.itemToEdit.SomeObject() === $data, name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->
次のエラーが発生します。
SCRIPT5022:バインディングを解析できません。メッセージ:SyntaxError:予期された識別子、文字列、または数値。バインディング値:テンプレート:{if:$ root.itemToEdit.SomeObject()=== $ data、name:'EditItemTemplate'、afterRender:$ root.initializeEditPanel}
if
テンプレート定義内にステートメントが含まれているようです。マークアップを次のように変更すると、IE8は満足します。
<!-- ko if: $root.itemToEdit.SomeObject() === $data -->
<!-- ko template: {name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->
<!-- /ko -->
if
テンプレートにステートメントを含めることがIE8で機能しないのはなぜですか?