2016-06-02 5 views
1

У меня есть observable array где заправить объекты какvalueHasMutated() - comptible с IE 8

{ 
    thisId: value.id, 
    nom: value.nom, 
    isChecked:check 
}; 

код, чтобы заполнить observableArray

self.fullFilter = function() { 
    var check; 
    self.thisObservableArray.removeAll(); 
    self.anOther1.removeAll(); 
    self.anOther2.removeAll(); 
    $.get("data/"+self.currentOngletId()+"?ajax=1", function(data) { 
     $.each(data, function(i, item) { 
      $.each(item, function(j, value) { 
       check = null; 
       switch (i) { 
        case 0: 
         try{ 
          if(value.observable_value.length > 0){ 
           check = "checked"; 
          } 
          var elem = { 
           thisId: value.id, 
           nom: value.nom, 
           isChecked:check 
          }; 
          self.thisObservableArray().push(elem); 
         } catch(e){ 
          console.warn('fullfilter -> observable_value '+e) 
         } 
         break; 
        case 1: 
         //an other same code different variables 
         break; 
        case 2: 
         //an other same code different variables 
         break; 
       } 
      }); 
     }); 
     try { 
      self.thisObservableArray.valueHasMutated(); 
      self.anOther1.valueHasMutated(); 
      self.anOther2.valueHasMutated(); 
     } catch(e){ 
      self.error("fullfilter",e); 
     } 
    }); 
}; 

Когда я пытаюсь с IE 8, у меня есть эта ошибка

Невозможно разобрать привязки

Наручники значение: атр: {для: 'thisObservableArray -' + $ data.thisId}

сообщений: идентификатор, строка или число ожидается

часть представления, где находится ошибка

<fieldset> 
    <legend>Statut</legend> 
     <ul data-bind="foreach: thisObservableArray()"> 
      <li> 
       <div class="form-group"> 
        <label data-bind="attr:{for:'thisObservableArray-'+$data.thisId}"> 
        <input class="observable-input" data-bind="attr:{id:'thisObservableArray-'+$data.thisId, name:'thisObservableArray['+$data.id+']', checked: $data.isChecked}" type="checkbox"/> 
        <span data-bind="text: $data.nom"></span> 
       </label> 
      </div> 
     </li> 
    /ul> 
</fieldset> 

ответ

0

IE8 не поддерживает селектора атрибутов в режиме совместимости.

Вам понадобится Doctype (<!doctype html>), который запускает режим стандартов.

Article

DocTypes

enter image description here

+0

Но я действительно имею в виду прекратить использование ie8 лол –

+0

жаль, но я должен это сделать, потому что в моей компании, я увидел на статистику, ** много людей используя IE8 еще **, и я согласен с вами. – yepzy

+0

Да, полностью его получите, много компаний, которые я разработал для запроса, чтобы быть совместимым с. и это создает множество проблем без всякой причины. см. править выше –