KnockoutJS 伪绑定在 IE8 中失败
KnockoutJS pseudobinding failing in IE8
以下内容在IE8中失败,但在实际浏览器中有效
<div data-bind="with: currentItem, visible: currentItemState() === 'view'">
<!-- ko if: resource().versions().length -->
<!-- ko with: resource().versions()[0] -->
<div style="margin-top: 15px;" data-bind="visible: error()">
.....
<!-- /ko -->
<!-- /ko -->
基本上我得到了property 'error' is null or undefined
这意味着with
(和if
)绑定无法正常工作。 这可能是因为IE8正在剥离注释,我已经看到它在其他上下文中这样做,例如在<select>
节点中,但我从未见过它在这样的地方这样做。
有没有解决这个问题的好方法(无需通过更改我的 html 结构来解决问题)?
大多数时候,当我遇到这个问题时,它不是归结为淘汰而是 HTML。诸如没有正确关闭标签之类的事情,例如有一个自我关闭的<label />
破坏了它。
IE8对这个东西非常讲究。我有一个地方,由于标签问题,它没有渲染<!-- ko if -->
的下半部分
将第二个无容器绑定包装在空div 中,以便在所有浏览器中正确解析它
<div data-bind="with: currentItem, visible: currentItemState() === 'view'">
<!-- ko if: resource().versions().length -->
<div>
<!-- ko with: resource().versions()[0] -->
<div style="margin-top: 15px;" data-bind="visible: error()">
<!-- /ko -->
</div>
<!-- /ko -->
</div>
我不确定是否有适当的方法来解决这个问题,但事实证明,如果 with*ed* 值未定义,则 KNOCKOUT 的with
绑定足够智能,根本不渲染节点。 因此,将这两个伪绑定替换为
<div data-bind="with: resource().versions()[0]">
似乎可以解决问题。
相关文章:
- 在 ie8 中使用茉莉花比较数组失败
- KnockoutJS 伪绑定在 IE8 中失败
- AngularJS 重定向在 IE8 上失败
- 在jQuery中创建一个带有属性的HTML元素,在ie7和ie8中失败
- JavaScript 中的正则表达式验证在 IE8 中失败
- Socket.IO 和 IE8 - jsonp 轮询连接总是失败
- Ajax脚本在IE8中失败
- jQuery在IE8中失败
- 在IE8中初始化另一个对象内部的对象失败
- Jcrop在特定服务器上的IE8下失败,在另一台服务器上工作
- 只有在ie8 /9的iframe内,GWT应用程序才会失败
- 如果文本中有任何格式,为什么这个函数会失败?(在IE8)
- 下划线模板使用“意外标识符”失败.在ie8中
- AJAX调用在Opera和IE8中失败
- 文档.在表、tr、td标签上创建元素在IE8上失败
- JavaScript / HTML -新的音频JavaScript在ie8及以下版本中失败
- Document.write()和document.images[i].宽度在IE8中失败
- formatNumber函数在IE8中失败,显示3.3500.3500000而不是3.500.000
- IE8中的Google Maps API加载失败(“Google'is undefined”)
- Ajax.请求在IE8/9中不能与CORS一起工作,静默失败