Backbone入门基础 - Model与服务器交互

来源:互联网 发布:重庆mac专柜 编辑:程序博客网 时间:2024/05/22 00:12

Model通过RESTful同步

[1] urlRoot声明

  • RESTful资源位置有两种形式:/task 和 /task/id,urlRoot是第一种形式,第二种形式backbone会自动做url的构造

[2] save方法

  • 没有id,使用POST请求,有id使用PUT或PATCH请求。
var Task=Backbone.Model.extend({    urlRoot: 'http://test.com/api/task'});var task = new Task({    'identify’:'p_chou',    'title': 'course1',    'description': 'course1 des'});

1) POST

  • save方法默认使用POST请求,当调用完save方法,服务器会返回id,backbone的机制会做自动同步(如果出了id还返回了其他字段,也会同步)。
    这里写图片描述

2) PUT

这里写图片描述

  • Backbone自动把id拼接到URL后面
    这里写图片描述
  • 会把所有属性传上去,服务器端获得并一次性更新掉。
    这里写图片描述

3) PATCH

  • 只更新一部分。
    这里写图片描述
  • 第一个参数可以用.changed获得当前(save之前)哪些属性发生了变化
    这里写图片描述
    这里写图片描述

[3] destroy方法

1) DELETE

这里写图片描述
这里写图片描述

2) ‘destroy’事件

task.on('destroy',function(){    console.log('task deleted.');});

这里写图片描述

[4] fetch方法

1) GET

  • 从服务器端拉取数据,并更新Model
    这里写图片描述
    这里写图片描述
    这里写图片描述

[5] defaults默认属性

var Task=Backbone.Model.extend({//定义默认属性defaults:{identify: 'p_chou'},urlRoot: 'http://rapit.sinaapp.com/api/task'});

[6] urlRoot规则

1)默认id规则

  • urlRoot只需指定/task这种形式的接口地址。Backbone会根据Model自身是否含有id属性,若有save方法,使用PUT或PATCH请求,若没有使用POST请求。destroy和fetch方法都依赖于id。
  • 若唯一标识不是id,可定义
var Task=Backbone.Model.extend({//定义唯一标识    idAttribute:'guid',    //定义默认属性    defaults:{        identify: 'p_chou'    },    urlRoot: 'http://rapit.sinaapp.com/api/task'});

2)通过定制’url’属性改变默认规则

  • 若设计的接口不是这种形式,可以将url重写

[7] sync事件

  • 只要和服务器端交互,都会调用该事件
task.on('sync',function(){    console.log('task sync');});

这里写图片描述

0 0
原创粉丝点击