5

Po uruchomieniu mojego programu w Mozilli, rozwiązuje on wyrazy nokautu i pokazuje wartości w tablicy obserwowalnej. Kiedy robię to samo w IE7, pokazuje kod knockout.nokaut nie analizuje wyrażeń w IE7

Mozilla wyniki

value 1 
value 2 
value 3 

IE7 powoduje

function observable() { 
    if (arguments.length > 0) { 
     // Write 
     // Ignore writes if the value hasn't changed 
     if ((!observable['equalityComparer']) || !observable['equalityComparer'](_latestValue, arguments[0])) { 
      observable.valueWillMutate(); 
      _latestValue = arguments[0]; 
      if (DEBUG) observable._latestValue = _latestValue; 
      observable.valueHasMutated();    
     } 
     return this; // Permits chained assignments   
    }   
    else { 
     // Read 
     ko.dependencyDetection.registerDependency(observable); // The caller only needs to be notified of changes if they did a "read" operation 
     return _latestValue;  
    } 
} 

Jak mogę uczynić ten działa poprawnie w IE7?

+0

można udostępnić swój kod lub jsFiddle? –

+0

To, co tu zrobiłeś, wygląda na kod jock nokautu ... Jesteś pewien, że to twój kod, który zgłasza błąd? – ryadavilli

Odpowiedz

2

Przeglądarki IE nie obsługują indexOf dla tablicy, co powoduje problem z frameworkiem knockout.js.

Dodaj poniższy skrypt, może rozwiązać swój problem:

// 
    // IE browsers do not support indexOf method for an Array. Hence 
    // we add it below after performing the check on the existence of 
    // the same. 
    // 
    if (!Array.prototype.indexOf) 
    { 
     Array.prototype.indexOf = function (obj, start) 
     { 
      for (var i = (start || 0), j = this.length; i < j; i++) 
      { 
       if (this[i] === obj) 
       { 
        return i; 
       } 
      } 
      return -1; 
     }; 
    } 
+0

Wszelkie aktualizacje na ten temat. – Rups