これはテンプレートの 1 つの特定のケースであることが判明しました。つまり、テンプレートがコンパイルされたとき、コードは最新のブラウザーでは問題なく動作しましたが、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>
問題は、「continue」が予約語であることにあります。Coffeescript は優れており、引用符なしでオブジェクト定義のキーとして使用できます。最近のブラウザーの通常の JS では、引用符なしで使用しても問題ないように見えます (ただし、一般的にはそうすることをお勧めします)。
ただし、IE8 では obj = { continue: "foo" } のように設定できず、obj.continue のように取得できない場合があります。それは obj["continue"] でなければなりません。
{{ messages.continue }} を {{ messages["continue"] }} に置き換えるか、プロパティの名前を変更すると、問題が修正されました。
誰かを助けることを願っています:)
ロブ