Проблема с Knockout JS в старых версиях Internet Explorer, а именно тех, что ниже IE 9, заключается в том, что они не могут правильно обработать атрибут data-bind.
Синтаксическая ошибка не дает покоя, и без продолжительного DEBUGa, как обычно не обошлось.
Напомним, что это за атрибут:
<a data-bind="attr: { href: url, title: details }"> Report </a>
Таким образом у тега a
появятся такие стандартные атрибуты как href
и title
с соответствующими значениями.
(Не буду объяснять подробности того как этим пользоваться, так как это заслуживает отдельной статьи. Кто знаком – тот поймет, а кто нет – ознакомьтесь, очень полезная библиотека.)
Так вот. При попытке обработать данную конструкцию в Internet Explorer 7, 8 возникает синтаксическая ошибка. После танцев с бубном я определил, что если взять все названия полей в кавычки, то все отлично работает.
Как это будет выглядеть:
<a data-bind="'attr': { 'href': url, 'title': details }"> Report </a>
По всей видимости, IE пытается обработать эти поля как переменные, которых естественно не находит. А в таком виде поля выступают в виде строк.
Та-да!