Obtenir une erreur non capturée «NO_MODIFICATION_ALLOWED_ERR» pour la liaison d’entrée

Je commence par ceci:

<script src="/Scripts/jquery-1.6.2.min.js" ... <script src="/Scripts/knockout-1.2.1.debug.js" ... <script src="/Scripts/knockout.mapping-latest.js" ... <script src="/Scripts/jquery.unobtrusive-knockout.min.js" ... 

Ensuite, je tire un object JSON plat du serveur et lie chaque propriété trouvée aux éléments correspondants dans le DOM:

 $.ajax({ url: '/GetRecord', type: 'POST', dataType: 'json', data: JSON.ssortingngify(requestObject), contentType: 'application/json; charset=utf-8', success: function (data) { // Clear the current view model VM.Items.length = 0; // only one item coming from server VM.Items[0] = ko.mapping.fromJS(data.BlankItem); // for each property found, bind it to the matching DOM element $.each(VM.Items[0], function (indexInArray, valueOfElement) { var attrName = indexInArray; // skip over things not an accessor (get/set property function) if( typeof valueOfElement == "function") { var attrValue = valueOfElement(); // if it's a checkbox, bind the checked atsortingbute var a = $('input[name="' + attrName + '"][type="checkbox"]'); if (a.length) a.dataBind({ checked: attrName }); // if it's a radio, bind all the found radio checked atsortingbutes var b = $('input[name^="' + attrName + '"][type="radio"]'); if (b.length) b.dataBind({ checked: attrName }); // if it's a text, bind the text atsortingbute var c = $('input[name="' + attrName + '"][type="text"]'); if (c.length) c.dataBind({ text: attrName }); // <--- Error (use value) } }); // Then set knockout loose ko.applyBindings( VM.Items[0] ); } }); 

Il en résulte une erreur:

Erreur non interceptée: NO_MODIFICATION_ALLOWED_ERR: exception DOM 7
ko.bindingHandlers.updateknockout-1.2.1.debug.js: 1577
invokeBindingHandlerknockout-1.2.1.debug.js: 1231
ko.applyBindingsToNode.ko.dependentObservable.
disposWhenNodeIsRemovedknockout-1.2.1.debug.js: 1268
assessmentknockout-1.2.1.debug.js: 927
ko.dependentObservableknockout-1.2.1.debug.js: 965
ko.applyBindingsToNodeknockout-1.2.1.debug.js: 1252
ko.applyBindingsknockout-1.2.1.debug.js: 1284
ko.utils.arrayForEachknockout-1.2.1.debug.js: 48
ko.applyBindingsknockout-1.2.1.debug.js: 1283
$ .ajax.successPropertyForm: 266
f.extend._Deferred.e.resolveWithjquery-1.6.2.min.js: 16
wjquery-1.6.2.min.js: 18
f.support.ajax.f.ajaxTransport.send.d

Je ne le vois pas relier des éléments qu’il ne devrait pas. De plus, il n’y a pas de liaisons knock-out déclaratives dans le HTML. Qu’est-ce que je fais mal?

    OMG. La réponse était d’utiliser l’atsortingbut de liaison droit. Au lieu de text , c’était une value pour une entrée!

    Dans mon cas, le problème était que je liais les données au texte plutôt qu’à la valeur.

    bad:

    good:

    J’ai également vu cette erreur dans Chrome lorsque ko.applyBindings(viewModel) accidentellement ko.applyBindings(viewModel) plusieurs fois.