нокаут 2.0 не работает в IE8 - PullRequest
1 голос
/ 08 марта 2012

Это представление хорошо работает с IE9 и Chrome. Однако не с IE8. Когда страница отображается, она выглядит следующим образом:

enter image description here

Мой HTML (MVC3 View) показан ниже.

<div id="machinedisplay" data-bind="with: selectedMachine" >
<h2><span data-bind="text: MachineDesciption" /></h2>
<!-- ko with: my.vm.machineData -->
<table>
    <thead><tr>
               <th>Point Name</th><th>Description</th><th>Points Data</th>
           </tr></thead>

    <tbody data-bind="foreach: Points">
        <tr>
            <td data-bind="text: PointName()"></td>
            <td data-bind="text: PointDesciption()"></td>
            <td>
                <table style="width:100%;">
                    <thead><tr>
                               <th>Name</th><th>Description</th><th>Value</th><th></th>
                           </tr></thead>

                    <tbody data-bind="foreach: Params">
                        <tr>
                            <td data-bind="text: ParameterName"></td>
                            <td data-bind="text: ParameterDescription"></td>
                            <td data-bind="text: StringValue"></td>
                        </tr> 
                    </tbody>
                </table>            
            </td>
        </tr> 
    </tbody>
</table>
<!-- /ko -->
</div>

Есть ли какие-нибудь идеи по поводу IE8?

EDIT: Чтобы проиллюстрировать эту проблему на более простой модели, проверьте эту скрипку http://jsfiddle.net/ericpanorel/nzKvb/

Я подумал, что у меня проблемы, потому что я использую привязки «с» или «если». Я где-то читал, что это вызывает проблемы с IE8.

Я использовал IE9, и если вы используете инструменты разработчика для переключения с IE9 на IE8, эта Fiddle больше не работает должным образом. Эта скрипка фактически получена из одного из образцов нокаута (http://knockoutjs.com/examples/gridEditor.html)

EDIT: Я обновил скрипку ... http://jsfiddle.net/nzKvb/20/ Это как-то связано с коротким закрытием тегов внутри вложенных безконтейнерных привязок

 <!-- ko if: Allowed-->
<h2>
 <span data-bind="text: Dummy"/>     <===== This will bomb in IE8 
</h2>

Ответы [ 2 ]

6 голосов
/ 08 марта 2012

У jsFiddle была дополнительная запятая в конце массива, которую IE8 рассматривал как нулевой объект:

var viewModel = new GiftModel([
    { name: "Tall Hat", price: "39.95"},
    { name: "Long Cloak", price: "120.00"},
    { name: "HK 416", price: "2420.00"}, <-- HERE !!!
]);
ko.applyBindings(viewModel);

Скрипка отлично работает без запятой:

http://jsfiddle.net/XPMUA/

Не уверен, что это решит основную проблему, но по крайней мере скрипка работает сейчас: -)

3 голосов
/ 27 февраля 2013

Проблема здесь, потому что

<!-- ko if: Allowed-->

В более старых версиях IE может требоваться использование зарезервированных слов JavaScript для имен свойств.

Так что вы должны написать 'if'

Проверка Та же проблема в другой ссылке !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...