Backbone之model

<1>model的创建

model是Backbone四大组件之一,创建的方式与之前的View方式类似,继承已有的model类,model类中也有initialize()方法,当model初始化时便调用该方法。

Backbone之model_第1张图片

model类中有defaults属性,作为预定义的值,即该类默认属性初始值:

Backbone之model_第2张图片

<2>model数据set与get
我们知道,在后端mvc框架中,一般都为model层的类实现了set与get方法,提供了一个对内数据操作,对外提供数据的接口,Backbone的model层也实现该方法。
--Setting attributes:


--Getting attributes:

Backbone之model_第3张图片

model层有个重要的监听事件,即监听数据的变化,执行相应的操作,该监听事件可以如下实现:

Backbone之model_第4张图片

<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()方法可实现数据的添加与更新。

Backbone之model_第5张图片

delete()--删除一个model

Backbone之model_第6张图片

fetch()--取数据

Backbone之model_第7张图片

参考文章: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

你可能感兴趣的:(js)