事实证明,这是我们模板中的一个特定情况,这意味着模板编译时,代码在现代浏览器中很好,但在IE8中投掷摇摆不定。
我们从我们的视图中使用像这样的serializeData功能传送数据与一些有用的字符串(CoffeeScript的,但你的想法):
...
serializeData: ->
data = super()
data.messages = {
intro: "Welcome to the app"
continue: "Click here to continue"
}
return data
...
然后引用,在像这样
<h1>{{ messages.intro }}</h1>
<a href="...">{{ messages.continue }}</h1>
模板
问题来自“继续”是一个保留字的事实。 Coffeescript是很好的,它允许你在没有引用的情况下将它用作对象定义中的一个键,并且在更现代的浏览器中,它会出现在常规的JS中,它们可以不加引号地使用它(尽管通常会推荐这么做)。
然而,在IE8中,你可能不会像obj = {continue:“foo”}那样设置它,你可能不会像obj.continue那样得到它,它必须是obj [“continue”]。
用{{messages [“continue”]}}替换{{messages.continue}}或重命名该属性解决了问题。
希望帮助这里有人:)
罗布
同样的问题。我正在使用'默认'保留字 – 2013-07-01 12:07:58
干杯!我挠了一下头,然后我看到了这一点,并改变了4个字符 - 整个网站再次运作!我们在模板中使用原始对象。新查找而不是对象['new']。 作为一个旁注,它说明了CommonJS模块确实全部被加载,不像AMD模块那样“根据需要异步加载”。尽管我看到了异议,但我们测试过的移动设备的性能似乎没有明显下降。但是,从任何页面捕获错误都会带来一定的无法预料的好处。 – trojjer 2013-09-25 12:01:02