javascript – 早于9的IE版本引发错误“预期的标识符,字符串或数字”

这个knockout 2.1绑定表达式在Firefox和IE9下工作正常,但在IE9兼容模式下崩溃,错误“预期的标识符,字符串或数字”:
<div data-bind="template: {
    if: myDataModel,data: myDataModel,afterRender: setup(myDataModel) }">

我在调试器下找到了实际位置,这是这行代码(knockout-2.1.0.debug.js):

return new Function("sc",functionBody)

functionBody是一个等于上面表达式的字符串.我尝试使用空格和回车字符 – 没有任何帮助,相同的结果:它与IE9兼容模式以外的任何浏览器一样工作

有什么建议?

解决方法

我认为问题是IE的旧版本不喜欢“if”或类似的保留字出现为属性名称.尝试在属性名称周围添加单引号.
<div data-bind="template: {
'if': myDataModel,afterRender: setup(myDataModel) }">

当你有一个“类”绑定时,你会发生另一个常见的时间.相同修复:

<tr data-bind="attr: { 'class': packageSelected() ? 'success' : '' }">

JS中的保留字列表:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Reserved_Words

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...