Backbone 的使用 (三)—— Collections 篇

如果将一个Model对象比喻成数据库中的一条记录,那么Collection就是一张数据表。它表示为一个模型集合类,用于存储和管理一系列相同类型的模型对象。

举个简单的例子:

	// 定义模型类  
    var Book = Backbone.Model.extend();  
    // 定义集合类  
    var BookList = Backbone.Collection.extend({  
        model : Book  
    });  
    // 创建一系列模型对象  
    var book1 = new Book({  
        name : 'Effective Java中文版(第2版)'  
    });  
    var book2 = new Book({  
        name : 'JAVA核心技术卷II:高级特性(原书第8版)'  
    });  
    var book3 = new Book({  
        name : '精通Hibernate:Java对象持久化技术详解(第2版)'  
    });  
    
    // 创建集合对象  
    var books = new BookList([book1, book2, book3]); 

    console.log(book1);
    console.log(books);

上面我们依次定义了模型类Book 和集合类 BookList ,然后创建了3个模型对象并将它们存入到集合中。

看一下结果:
在这里插入图片描述
集合类中有2个key(models 和_byId) ,分别对应的是数组和json 对象,展开后内容就是上面的3个模型对象。

除了向构造函数中添加模型列表外,还可以直接传递数据。

	// 定义模型类  
    var Book = Backbone.Model.extend();  
    // 定义集合类  
    var BookList = Backbone.Collection.extend({  
        model : Book  
    });  
    var models = [{  
        name : 'Effective Java中文版(第2版)'  
    }, {  
        name : 'JAVA核心技术卷II:高级特性(原书第8版)'  
    }, {  
        name : '精通Hibernate:Java对象持久化技术详解(第2版)'  
    }];  
    // 创建集合对象  
    var books = new BookList(models); 

这里的book 和上面传实例化对象 所得到的结果是一样的。
为了偷懒我在想如果集合类中不声明 mode : Book 可不可以尼?

结果操作我得到一个结果,声明是可以去掉的,所造成是

如果你在定义集合类的时候没有设置model,那么集合会默认将原始数据转换为Backbone.Model类的实例

到这里我们就应该简单了解到collection 的作用了。至于下面的各个方法其实就很容易去理解了,可以看看这里说的很详细。
https://www.iteye.com/blog/yujianshenbing-1748826

至于发送数据到Server端 ,到后面有机会会和view整合到一起,列出一个demo 。

发布了62 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_37026254/article/details/102605257