1、简介web
当开发涉及到大量JavaScript的web应用的时候,你的第一件事就是学会把数据与界面分开。使用JavaScript建立应用,最终很容易致使应用中存在不少杂乱无章的jQuery选择器以及回调函数,这些函数都是用来维护数据在Html UI,Javascript逻辑以及服务器数据库之间的同步。对于一个富客户端的应用来讲,一个更加结构化的方法会更加有益。数据库
Backbone把数据用模型表示(models),模型能够被建立,验证,销毁以及保存到服务器。不管什么时候一个UI行为致使模型的一个属性被更改,模型将触发一个change事件,因此显示该模型状态的视图(view)将会收到这个change事件并响应,使用新的信息从新渲染他们自己。在一个彻底使用Backbone的应用中,你不须要编写辅助代码深刻文档DOM中查找某个特定ID对应的元素,而后手动更新他们,当一个模型变化时,视图会简单地更新他们自己。服务器
2、Backbone.Events函数
Events是一个模块,能够混合在任何对象上,使得对象可以绑定和触发自定义命名的事件。事件在绑定前不须要事先声明,而且可使用参数传递。好比:fetch
var object = {};url
_.extend(object,Backbone.Events);对象
object.on("alert",function(msg){alert("Triggered "+msg);});事件
object.trigger("alert","an event");ip
一、on/bind 为对象绑定事件ci
语法1:object.on(events,callback,[context])
在对象上定义一个或者多个事件,并绑定事件的回调函数。多个事件使用空格分隔。而且单个事件命名可使用冒号来标示命名空间,好比:book.on("change:title change:author",...)
语法2:object.on({event1:callback1,event2:callback2,...})
使用一个对象做为参数,如:book.on({
"change:title":titleView.update,
"change:author":authorPane.update
});
特别地,若是绑定在对象上绑定一个"all"事件,那当其余任何事件触发时,该事件也被触发。
二、off/unbind 解除对象上的事件绑定
语法:object.off([event],[callback],[context])
若是context没指定,则移除全部context下的指定事件的指定回调。
若是callback没有指定,则移除指定事件上的全部回调函数。
若是event没有指定,则移动对象上的全部事件。
三、trigger 触发对象上的一个事件
语法:object.trigger(event,[*args])
四、once 绑定一个只能被触发一次的事件
语法:object.once(event,callback,[context])
五、listenTo 监听另外一个对象上的某个事件
语法:object.listenTo(other,event,callback),例子:view.listenTo(model,"change",view.render);
六、stopListening 中止监听
语法:object.stopListening([other],[event],[callback])
七、listenToOnce 监听一次
语法:object.listenToOnce(other,event,callback)
3、Backbone.Models
模型是JavaScript应用的核心,他包含了交互数据及大部分的逻辑:转换,验证,计算和访问控制等。你通常使用特定领域的方法来扩展Backbone.Model,Model提供了基本的方法集合来管理model的变化。
一、extend Backbone.Model.extend(properties,[classProperties])
建立本身的Model类,提供类的实例属性和类属性。
二、constructor/initialize new Model([attributes],[options])
当建立一个model对象的时候,传入attributes的初始化值,若是Model定义了initialize函数,在新建一个model后,initialize方法被调用。
三、get
四、set
五、escape
六、has
七、unset
八、clear
九、id
十、idAttribute
十一、cid
十二、attributes
1三、changed
1四、defaults
1五、toJSON
1六、sync
1七、fetch
1八、save
1九、destroy
20、Underscore Methods(6)
2一、validate
2二、validationError
2三、isValid
2四、url
2五、urlRoot
2六、parse
2七、clone
2八、isNew
2九、hasChanged
30、changeAttributes
3一、previous
3二、previousAttributes