首页 > 代码库 > backbonejs中的模型篇(一)
backbonejs中的模型篇(一)
一:模型及属性
模型是MVC应用的基石,它负责存放应用所需的数据,对数据的验证,执行访问控制,以及实现应用所需的特定业务逻辑。
backbone通过扩展Backbone.Model对象来定义一个模型。
如:var Mymodel = Backbone.Model.extend({...});
我们并不需要在模型内部定义一个数据结构,backbone支持在模型初始化时动态定义。
如: mymodeltest = new Mymodel({
date:‘2014-08-14‘,
name:‘joan‘,
description:‘test‘});
1:模型复制
newmodel= mymodeltest.clone(); 得到一个模型独立的副本,此时对mymodeltest模型实例的修改不会反映到newmodel上;如果是赋值给另一个对象,则会反映到另一个对象。
2:设置默认的属性值
如: var _model = Backbone.Model.extend({
defaults:{date:‘‘, name:‘joan‘, description:‘‘,gender:‘women‘}
})
var aaa = new _model({
description:‘testtest‘
});
aaa.get(‘date‘)!=undefine //true
aaa.get(‘name‘) //joan aaa.get(‘description‘) //testtest
3:可用函数来设置默认属性值
如:var _model = Backbone.Model.extend({
defaults:{name: ‘joan‘,
description: ‘‘,
gender: ‘women‘,
date: function(){var date = new Date(); return date.toISOString();}}
})
4:initialize()方法
在模型对象被创建后,initialize方法立即被调用来初始化模型对象的属性值
以上defaults中的date属性也可以在initialize方法中设置
initialize:function(){
if(!this.has(‘date‘)){var date = new Date(); this.set(‘date‘,date.isISOString());}
}
通过has方法来判断date属性是否在它之前没有被初始化过,避免将其覆盖
通过set方法来设置默认date属性
二:操作模型属性的一些专门的方法
1:get():获取属性的值
2:set():更新或者创建单个属性的值,可以一次更新多个,使用‘键-值’的格式
如:aaa.set({name:‘saly‘,gender:‘Man‘}) 如果该属性不存在,则会自动创建出该属性。设置成功,返回true,表示一个可用的模型的引用,否则false.
3:unset():从模型中删除一个属性。 如:aaa.unset(‘description‘)
4: clear(): 从模型中删除所有的属性。
5:has():检查模型中是否存在某一属性,存在返回true, 如:aaa.has(‘name‘), //true