Chrome dev - Nicht zuordnen können, um nur-lese-Eigenschaft

Baue ich ein app mit AngularJS, MongoDB und NodeJS. Meine app mithilfe des Mongolab-REST-API für die CRUD-Operationen. Ich bin auch mit Google Chrome Developer Tools für die Fehlersuche.

Bis heute mein Update-Operationen auf mongo waren wunderbar funktioniert, auf beiden Chrome und Firefox (nutze ich gelegentlich) aber nach Chrome automatisch aktualisiert, die updates fehlschlagen und ich habe diesen Fehler :

TypeError: Cannot assign to read only property '_id' of {"$inc":{"count":1},"$set":{"messages":[{"unread":false,"flagged":false}]}}
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.9/angular.js:409:18

Habe ich diesen Fehler nur in Chrome, Firefox zeigt keine Fehler und das update ist erfolgreich.
Der strikte Modus in meinem Winkel-Modul das update selbst erfolgt über diese :

Resource.prototype.$update = function (queryJson,successcb, errorcb) {
  var params = angular.isObject(queryJson) ? JSON.stringify(queryJson) : {},
      httpPromise = $http.put(url + "/" + this.$id(), angular.extend(params,  this, {_id:undefined}), {params:defaultParams});

  return thenFactoryMethod(httpPromise, successcb, errorcb);
};

Wo :

var queryJson = { "$inc": {"count":1} , "$set" : {"messages": message} };

Ich bin mir nicht sicher, ob es durch das update auf Chrome oder etwas anderes.

Hat jemand auf etwas stoßen wie diese? Jede Hilfe wird sehr geschätzt.

Hinweis: {_id:undefined} ist nur ein Weg, entfernen das _id-Eigenschaft des Objekts. MongoLab erfordert die id eines Objekts zu aktualisieren gesendet werden als Teil der URL und nicht als Teil der gesendeten Daten über SETZEN.

Anderen Weg, es zu tun :

var objCopy = angular.copy(this) ; 
if (objCopy._id) 
  delete objCopy["_id"] ; 

httpPromise = $http.put(url + "/" + this.$id(), angular.extend(params,  objCopy), {params:defaultParams}) ;

InformationsquelleAutor jfab fab | 2014-10-09

Schreibe einen Kommentar