backbone学习笔记:集合(Collection)
集合(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'})
backbone学习笔记:集合(Collection)的更多相关文章
- Backbone学习笔记一Backbone中的MVC
原文章地址http://bigdots.github.io/2015/12/01/Backbone学习笔记(一)/#more Backbone.js为复杂WEB应用程序提供模型(models).集合( ...
- 【再探backbone 02】集合-Collection
前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...
- Backbone 学习笔记
Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用. 借助Backbone 我们可以使用REST的方式来最小化客户 ...
- java学习笔记 --- 集合(续)
1.map集合 1.1.特点:将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 1.2.Map集合和Collection集合的区别? Map集合存储元素是成对出现的,Map集 ...
- Backbone学习笔记 - Collection及Router篇
Collection Collection可以看成是Model的集合.以下是一个集合的例子: var Song = Backbone.Model.extend({ defaults: { name: ...
- Backbone学习笔记 - View篇
Backbone是一种Web端的MVC框架,这里纪录学习Model,View和Collection的笔记. 1 View initialize构造函数 Backbone.View 与jQuery库紧密 ...
- 0014 Java学习笔记-集合-HashMap集合
主要的方法 + 构造方法: * HashMap(); - 默认大小16,负载因子0.75 * HashMap(int initialCapacity); * HashMap(int initialCa ...
- backbone学习笔记(一)
因为工作的需要,从今天起对backbone的学习过程做下记录. 学习计划: 1.1周看基本知识(2014/1/18-2014/1/25) 2.基本知识总结(2014/1/26) 3.半周按教程写hel ...
- Backbone学习笔记
model model的get和set是对model.attributes进行操作,并不是直接对model进行操作 collection collection.set()会触发相应的add,remov ...
随机推荐
- Entity Framework应用:EntityFramework DataBase First模式
在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查 一.新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型: 然后点击添加 二.选择来自数据库的EF设计器,并 ...
- MFC函数—— CFrameWnd::OnCreateClient
CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); ...
- 记录一下寄几个儿的greendao数据库升级,可以说是非常菜鸡了嗯
之前使用的greendao数据库存储服务器所有的历史推送消息,但是后来消息需要加几个新的字段 举个栗子,比如要新增红色框住的字段到数据库中: 本仙女作为一只思想成熟的菜鸡,当然是加了字段就赶紧重新往里 ...
- Hadoop开发相关问题
总结自己在Hadoop开发中遇到的问题,主要在mapreduce代码执行方面.大部分来自日常代码执行错误的解决方法,还有一些是对Java.Hadoop剖析.对于问题,通过查询stackoverflow ...
- python __getattr__
1.__getattr__ 方法的作用:当调用不存在的属性,就会调用__getattr__()方法: 当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeEr ...
- sqlldr 学习总结1
1.建表语法(采用scott中的emp表) create table emp( empno number(4) not null, ename varchar2(10), job ...
- 指定webapi 返回 json 格式 ; GlobalConfiguration.Configuration.Formatters.Clear()
因为 Internet Explorer 和 Firefox 发送了不同的 Accept 头,所以 web API 在响应里就发送了不同的内容类型. 解决方法,在 Global.asax的 App ...
- 如何在Web.config中注册用户控件和自定义控件
问题: 在ASP.NET 的早先版本里,开发人员通过在页面的顶部添加 指令来引入和使用自定义服务器控件和用户控件时,象这样: <%@ Register TagPrefix="scott ...
- JavaScript中String和JSON互换
最简答的方式是: JSON.parse(obj) 将json对象解析为json字符串 JSON.stringify(str) 将json字符串转为json对象. 需要注意的是早期的IE浏览器是没有JS ...
- 分享10款效果惊艳的HTML5图片特效
在HTML5的世界里,图片特效都十分绚丽,我们在网站上也分享过很多不错的HTML5图片特效,现在我们精选10款效果惊艳的HTML5图片特效分享给大家. 1.HTML5 3D正方体旋转动画 很酷的3D特 ...