首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IE8中使用条件剔除模板

在IE8中使用条件剔除模板
EN

Stack Overflow用户
提问于 2012-04-13 11:48:50
回答 1查看 5.3K关注 0票数 13

在所有的“现代”浏览器中,以下内容都适用于,但不适用于IE8:

代码语言:javascript
复制
<!-- 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将很高兴:

代码语言:javascript
复制
<!-- ko if: $root.itemToEdit.SomeObject() === $data -->
   <!-- ko template: {name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
   <!-- /ko -->
<!-- /ko -->

为什么在我的模板中包含一个if 语句在IE8中不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-13 12:52:49

较早的IE版本可能会挑剔地使用JavaScript保留的单词作为属性名。如果您指定了类似于if'if',那么就可以了。比如:

代码语言:javascript
复制
<!-- ko template: {'if': $root.itemToEdit.SomeObject() === $data, name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->

或者像<label data-bind="attr : { 'for': id }"></label>这样的东西

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10140236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档