对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
是围绕这些约定进行建模的