栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS $ resource RESTful示例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AngularJS $ resource RESTful示例

$ resource旨在从端点检索数据,对其进行处理并将其发送回。您已经有了 其中的一些功能 ,但是您并没有真正利用它来完成它。

在您的资源上有自定义方法是很好的,但是您不想错过OOTB附带的很酷的功能。

编辑 :我认为我本来解释得不够好,但是

$resource
做了一些带有回报的时髦东西。
Todo.get()
Todo.query()
两个
返回 的资源对象, 把它传递到 回调
的GET完成时。它在幕后做了一些花哨的承诺,这意味着您可以
$save()
get()
回调实际触发之前调用,并且它将等待。最好只在promise
then()
或callback方法中处理资源。


标准使用

var Todo = $resource('/api/1/todo/:id');//create a todovar todo1 = new Todo();todo1.foo = 'bar';todo1.something = 123;todo1.$save();//get and update a todovar todo2 = Todo.get({id: 123});todo2.foo += '!';todo2.$save();//which is basically the same as...Todo.get({id: 123}, function(todo) {   todo.foo += '!';   todo.$save();});//get a list of todosTodo.query(function(todos) {  //do something with todos  angular.forEach(todos, function(todo) {     todo.foo += ' something';     todo.$save();  });});//delete a todoTodo.$delete({id: 123});

同样,对于在OP中发布的内容,可以获取一个资源对象,然后在其上调用任何自定义函数(理论上):

var something = src.GetTodo({id: 123});something.foo = 'hi there';something.UpdateTodo();

我去之前尝试过OOTB实施,但是发明了自己的。而且,如果您发现自己没有使用的任何默认功能

$resource
,则可能应该
$http
自己使用。

更新:Angular 1.2和Promises

从Angular 1.2开始,资源支持承诺。但是他们没有改变其余的行为。

$resource
通过使用诺言,您需要
$promise
在返回值上使用属性。

使用承诺的示例

var Todo = $resource('/api/1/todo/:id');Todo.get({id: 123}).$promise.then(function(todo) {   // success   $scope.todos = todos;}, function(errResponse) {   // fail});Todo.query().$promise.then(function(todos) {   // success   $scope.todos = todos;}, function(errResponse) {   // fail});

请记住,该

$promise
属性是具有与上面返回的值相同的属性。所以你会变得很奇怪:

这些是等效的

var todo = Todo.get({id: 123}, function() {   $scope.todo = todo;});Todo.get({id: 123}, function(todo) {   $scope.todo = todo;});Todo.get({id: 123}).$promise.then(function(todo) {   $scope.todo = todo;});var todo = Todo.get({id: 123});todo.$promise.then(function() {   $scope.todo = todo;});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575360.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号