天天看点

Backbone中的模型创建model设置属性设置model默认属性监听model的属性改变和服务端交互创建一个新model获取一个model删除一个model其他方法

模型是所有javascript应用程序的核心,包括交互数据及相关的大量逻辑: 转换、验证、计算属性和访问控制。你可以用特定的方法扩展<code>backbone.model</code>,模型也提供了一组基本的管理变化的功能。

new一个model的实例后就会触发initialize()函数。

现在我们想设置一些属性,有两种方式,可以在创建model实例时进行传参,也可以在实例生成后通过<code>model.set(obj)</code>来进行设置。

# 获取属性

有的时候你可能会想让model有默认属性值,只要在进行model声明的时候设置个<code>defaults</code>就行了。

我们可以通过<code>model.bind(event,callback)</code>方法来绑定change事件来监听属性改变。下面的这个例子就是在initialize方法中绑定了一个name属性改变的事件监听。 如果person的name属性改变了,就会弹出个对话框显示新值。

服务端实现一个restful的url例如/user,可以允许我们通过他与后台交互。

<code>model.urlroot</code>:如果使用的集合外部的模型,通过指定 urlroot 来设置生成基于模型 id 的 urls 的默认 url 函数。 “/[urlroot]/id”

如果id为null,则会提交一个post请求到/user。

<code>model.save([attributes], [options]) </code>: 通过委托<code>backbone.sync</code>保存模型到数据库(或可替代的持久层)。 attributes 散列表 (在 set) 应当包含想要改变的属性,不涉及的键不会被修改。 如果模型含有<code>validate</code>方法,并且验证失败,模型不会保存。 如果模型<code>isnew</code>, 保存将采用 “create” (http post) 方法, 如果模型已经在服务器存在,保存将采用 “update” (http put) 方法.

初始化一个model实例并设置其id属性,并调用fetch方法,这样会请求<code>urlroot + '/id'</code>地址到后台。

<code>model.fetch([options])</code>: 从服务器重置模型状态。这对模型尚未填充数据,或者服务器端已有最新状态的情况很有用处。 如果服务器端状态与当前属性不同,则触发<code>change</code>事件。 选项的散列表参数接受<code>success</code>和<code>error</code>回调函数, 回调函数中可以传入<code>(model,response)</code>作为参数。

# 更新一个model 当保存的model对象的id不为空时,则会提交一个put请求到urlroot。

调用model的destroy方法时,则会提交请求到urlroot+”/id”

<code>model.destroy([options])</code>:通过委托<code>http delete</code>请求到<code>backbone.sync</code>销毁服务器上的模型. 接受<code>success</code>和<code>error</code>回调函数作为选项散列表参数。将在模型上触发<code>destroy</code>事件,该事件可以通过任意包含它的集合向上冒泡。