在所有的“现代”浏览器中,以下内容都适用于,但不适用于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中不起作用?
发布于 2012-04-13 12:52:49
较早的IE版本可能会挑剔地使用JavaScript保留的单词作为属性名。如果您指定了类似于if的'if',那么就可以了。比如:
<!-- ko template: {'if': $root.itemToEdit.SomeObject() === $data, name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->或者像<label data-bind="attr : { 'for': id }"></label>这样的东西
https://stackoverflow.com/questions/10140236
复制相似问题