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

本文介绍了Backbone.js中Model的RESTful同步机制,包括urlRoot的声明方式、save方法的不同请求类型(POST、PUT、PATCH)、destroy和fetch方法的使用、默认属性设置及urlRoot的规则等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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');
});

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值