事實證明,這是我們模板中的一個特定情況,這意味着模板編譯時,代碼在現代瀏覽器中很好,但在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