backbonejscomplexmodel

https://github.com/powmedia/backbone-deep-model 

https://github.com/powmedia/backbone-forms

http://stackoverflow.com/questions/9135250/backbone-js-complex-model

var Tag = Backbone.Model.extend({
    defaults: {
        name: ''
    },
    validate: function(atts){
        if(!atts.name || atts.name.length < 2){
            return "You must provide a name that's longer than 2 characters";
        }
    }
});

var TagList = Backbone.Collection.extend({
    model: Tag
})

var Entry = Backbone.Model.extend({
    defaults: {
        author: "Todd",
        pub_date: new Date(),
        content: "",
        title: "",
        tags: new TagList()
    },
    add_tag: function(tag){
        var tag_collection = this.get('tags');
        tag_collection.add({name: tag});
        this.set({tags: tag_collection});
    },
    remove_tag: function(tag){
        tag.destroy();
    },
    tags: function(){
        return this.get('tags').models;
    }
});
原文地址:https://www.cnblogs.com/leamiko/p/2936032.html