2012-10-04 5 views
0

Я не вижу, где ошибка здесь. У меня есть аналогичный код для другого раздела той же страницы с аналогичной настройкой, которая отлично работает в IE, но это вызывает ошибку. Сначала я попытался просто нажать на каждое из значений, но у IE были проблемы (см. http://www.knockmeout.net/2012/04/knockoutjs-performance-gotcha.html).Knockoutjs valueHasMutated Error in IE

function DocSubType(doc_subtype_id, description) { 
    this.doc_subtype_id = ko.observable(doc_subtype_id); 
    this.description = ko.observable(description); 
}; 
.... 
docsubtypeModel = [ ], //Where the loaded descriptions are stored. Knockout observers this. 

viewDocSubTypeModel = { 
    docsubtypes: ko.observableArray(docsubtypeModel), 
.... 
download: function() { 
    $.getJSON(DocSubTypesettings.list, function(json) { 
     //Push to the original model and then stated that it has mutated to speed up performance in IE. 
     var tmparray = viewDocSubTypeModel.docsubtypes(); 
     for(i=0; i < json.docsubtypes.length; i++) { 
      tmp = new DocSubType(json.docsubtypes[i].doc_subtype_id, json.docsubtypes[i].description); 
      tmparray.push(tmp); 
     } 
     viewDocSubTypeModel.docsubtypes.valueHasMutated(); /*ERROR HERE*/   
    }); 
} 

IE8 сообщает "JScript Объект ожидается," нокаут-1.2.1.js, строка 34 символов 262. (или нокаут-1.2.1.debug.js, строка 928 символов 19)

+0

Последняя версия нокаута - 'knockout-2.1.0.js'. Почему бы вам не обновить его? – nemesv

+0

Только что заметил, что и сделал, тот же выпуск. Странно, что он отлично работает с двумя аналогичными настройками viewModel на одной странице и разбивается на 2. – Aaron

ответ

0

Проблема было то, что я написал помощника добрых дел, который вызывал ошибку.