model是Backbone四大组件之一,创建的方式与之前的View方式类似,继承已有的model类,model类中也有initialize()方法,当model初始化时便调用该方法。
model类中有defaults属性,作为预定义的值,即该类默认属性初始值:
<2>model数据set与get
我们知道,在后端mvc框架中,一般都为model层的类实现了set与get方法,提供了一个对内数据操作,对外提供数据的接口,Backbone的model层也实现该方法。
--Setting attributes:
--Getting attributes:
model层有个重要的监听事件,即监听数据的变化,执行相应的操作,该监听事件可以如下实现:
<2>与服务器端交互
要理清这个点,我们需介绍一个概念,即"RESTful url"。这个概念呢,核心点有两个。一个可以简单概括为路径即资源,我们学过操作系统,操作系统的目录那章,我们也曾接触过一个概念即目录及文件,这两个文件有点类似,都是讲一个资源抽象成为可访问的一个具体对象。
为什么要进行这样的抽象呢,要从客户机服务器说起。客户机端访问服务器端只能通过http来访问,而http又是无状态协议,所以客户端想要操作数据或资源就必须让服务器端的状态发生变化。但客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。但这四个操作方式足以实现对服务器端的操作从而来更改数据。而Backbone通过实现sync()方法,封装了save(),destroy(),fetch()方法来实现对服务器的状态改变。我们看下面例子:
该例子里,task类,实现了url属性,其实这就相当于之前我们提交表单时,表单上传的地址,而Backbone抽象了数据交互这一层,使之更清晰简洁。
我们来看数据交互封装好的几个方法:
--Save() save()方法可实现数据的添加与更新。
delete()--删除一个model
fetch()--取数据
参考文章:Backbone.js with PHP & MySQL --https://medium.com/@scottdixon/backbone-js-with-php-mysql-362b07dad844#.ex0p6ubag
理解RESTful架构 --http://www.ruanyifeng.com/blog/2011/09/restful.html