IE версии ранее 9 вызывает ошибку " ожидаемый идентификатор, строка или номер"
Это выражение привязки knockout 2.1 отлично работает в Firefox и IE9, но сбой в режиме совместимости IE9 с ошибкой"предполагается наличие идентификатора, строки или числа":
<div data-bind="template: {
if: myDataModel,
data: myDataModel,
afterRender: setup(myDataModel) }">
Я нашел фактическое место под отладчиком, это эта строка кода (нокаут-2.1.0.отлаживать.в JS):
return new Function("sc", functionBody)
functionBody
- строка, равная приведенному выше выражению. Я пытался играть с пробелами и символами возврата каретки-ничего не помогает, те же результаты: он работает так, как ожидалось любой браузер, кроме режима совместимости IE9
какие предложения?
1 ответов
Я думаю, проблема в том, что более старые версии IE не любят "Если" или подобные зарезервированные слова появляться в качестве имен свойств. Попробуйте поставить одинарные кавычки вокруг имен свойств.
<div data-bind="template: {
'if': myDataModel,
data: myDataModel,
afterRender: setup(myDataModel) }">
еще одно общее время, когда это произойдет, когда у вас есть привязка" class". То же самое исправить:
<tr data-bind="attr: { 'class': packageSelected() ? 'success' : '' }">
список зарезервированных слов в JS:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Reserved_Words