$resource function $save(),它到底做什么,它如何支持服务器端数据的CRUD操作


$resource function $save(), what exactly does, How it support CRUD operations on server-side data

对angular资源有疑问,在本文档中http://docs.angularjs.org/api/ngResource/service/$resource

给定

:

var User = $resource('/user/:userId', {userId:'@id'});
     User.get({userId:123}, function(user) {
       user.abc = true;
       user.$save(); //Doubt here.
     });

在这上面他们给出了

"当数据从服务器返回时,对象是资源类型的实例和所有非get方法可与$前缀。这允许您轻松地支持CRUD"

现在考虑例如,我有一个PHP脚本/user执行一些操作,如插入记录到Mysql数据库。

我的假设: .$save() ,它保存/更新,自动到数据库内部与更新语句?我不这么认为。也请澄清,它如何支持CRUD操作从客户端编程。

或者,这是否意味着赋值操作user.abc = true应该保存到对象。(不是必需的,只要给对象属性赋一个值就足够了)。

那么这个 $save()是什么?确切地说,在客户端编程中。

这些只是$resource对象遵循的约定。

$save or save将在资源url上对模型数据执行HTTP POST。

$delete or delete对资源url进行HTTP DELETE请求。

和开发人员经常添加update,它对资源url进行HTTP PUT。

服务器仍然需要实现这个并提供基本的CRUD操作支持。

在标准的RESTful服务(服务器)中,约定如下

Url: /users Action:GET将获取所有用户资源

Url: /users/1 Action:GET将获得标识符为1

的用户资源

Url:/users Action:POST应该在服务器

上创建一个新的用户资源

Url: /users/1 Action:PUT应该更新id为1

的用户的详细信息

客户端$resource是围绕这些约定进行建模的