首页 技术 正文
技术 2022年11月6日
0 收藏 435 点赞 820 浏览 1686 个字

集合(Collection)是一个Backbone对象,用来组织和管理多个模型,它不仅仅是一个javascript数组,还提供了专门的方法来对集合进行排序、过滤和遍历,集合可以方便的与REST服务器进行通信。

RoomCollection=Backbone.collection.extend({model: RoomModel});

var room1=new RoomModel({name:’test1′});

var room2=new RoomModel({name:’test2′});

var room3=new RoomModel({name:’test3′});

var rooms=new RoomCollection([room1,room2,room3]);

在集合内部,模型被存储在一个名为models的数组当中,为集合添加模型或删除模型时,Backbone.Collection负责对这个数组进行维护

注意:对集合进行排序后,模型元素的索引会更改掉

集合提供的方法:

1. at():获取处于特定索引位置的模型,var model=rooms.at(2);

2. indexOf():获取模型的索引,此方法从underscore.js中继承过来,rooms.indexOf(model);

3. clone():获取对象的深拷贝,改变复制的对象的属性不会影响原始模型对象的属性值,rooms.at(2).clone();

4. length:获取集合的长度,rooms.length

5. get():使用ID从集合中获取模型,保证最佳性能,如果ID没有初始化,就用对象模型的cid代替ID,rooms.get(‘c1’)

6. add():为集合添加一个新的模型rooms.add(new RoomModel({name:’test4′}),{at:2}),在索引为2的位置为集合添加一个新模型,

  add方法只添加不重复的模型,可以添加一个模型,也可以添加一个模型数组

7. remove():删除一个或多个模型, rooms.remove([‘c1′,’c2’]),或者rooms.remove(model)

8. reset():清空集合中原有的模型,并且可以添加新的模型

  把集合当队列或者栈操作,所以push(),pop(),unshift(),shift()方法都可以用

9. sort():排序,由comparator(定义排序规则)属性辅助完成

10. pluck():把集合中每个模型的特定属性值作为数组返回,rooms.pluck(‘name’)

11. map():对每个模型进行特定的计算,返回所有模型计算结果的数组

  rooms.map(function(model){

    return model.get(‘name’)+’hi’;

  })

12. every():检查集合中所有的模型是否满足指定条件,只要有一个不满足条件就返回false,都满足条件返回true

  var reslut=rooms.every(function(model){

    return model.get(‘name’).length>5;

  })

13. some():检查集合中的任意模型是否满足指定条件,只要有一个满足条件就返回true,只有都不满足条件才返回false

  var reslut=rooms.some(function(model){

    return model.get(‘name’).length>5;

  })

14. create():在集合中添加新的模型,并保存到服务器,返回新添加的模型

  var room=rooms.create({name:’test6′});room是新添加的模型

15. where():返回集合中所有匹配指定属性的模型数组。 对于简单的filter(过滤)比较有用。

 rooms.where({name:’test1′})

16. findWhere():返回集合中匹配指定模型的第一个模型

  var room=rooms.findWhere({name:’test1′})

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,497
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298