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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage