这个 knockout 2.1 绑定表达式在 Firefox 和 IE9 上运行良好,但在 IE9 兼容模式下崩溃,并显示错误 "Expected identifier, string or number"。
<div data-bind="template: {
if: myDataModel,
data: myDataModel,
afterRender: setup(myDataModel) }">
我在调试器下找到了实际的位置,就在这行代码中(knockout-2.1.0.debug.js):
return new Function("sc", functionBody)
functionBody
是一个等于上述表达式的字符串。我尝试过在空格和换行符之间进行调整,但没有帮助,结果相同:在IE9兼容模式下与其他浏览器相比有不同的结果。
有什么建议吗?
'if'
表达式后它可以正常工作了。 Knockout.js 的文档没有提到这一点,在他们的网站 http://knockoutjs.com 上所有if
语句的示例都没有引号,尽管他们声称该框架可以从 IE6+ 开始使用,但这似乎并不正确。 - YMCif
绑定似乎没有任何问题的原因。你只需养成为这些对象引用属性名称的习惯即可。 - Jeff Mercadoif
语句进行引用的示例。 - YMCif
设置进行template
绑定的示例,我只看到了普通顶层if
绑定的示例。文档中一定要注明这一点。 - Jeff Mercado