backbone.js: Überschreiben von toJSON
Ich versuche, eine Art verschachtelter Sammlungen in einem Backbone.Model zu implementieren
Dazu muss ich die Adapterfunktionen überschreiben, die die Serverantwort analysieren, und das Array in eine Auflistung und die Funktion einschließen, die das gesamte Objekt ohne Hilfsmethoden serialisiert. Ich habe Probleme mit dem zweiten.
var Model = Backbone.Model.extend({
urlRoot: "/model",
idAttribute: "_id",
// this wraps the arrays in the server response into a backbone collection
parse: function(resp, xhr) {
$.each(resp, function(key, value) {
if (_.isArray(value)) {
resp[key] = new Backbone.Collection(value);
}
});
return resp;
},
// serializes the data without any helper methods
toJSON: function() {
// clone all attributes
var attributes = _.clone(this.attributes);
// go through each attribute
$.each(attributes, function(key, value) {
// check if we have some nested object with a toJSON method
if (_.has(value, 'toJSON')) {
// execute toJSON and overwrite the value in attributes
attributes[key] = value.toJSON();
}
});
return attributes;
}
});
Das Problem ist jetzt im zweiten Teil von toJSON. Aus irgendeinem Grund
_.has(value, 'toJSON') !== true
gibt nicht wahr zurück
Könnte mir jemand sagen, was falsch läuft?