大佬教程收集整理的这篇文章主要介绍了AngularJS $ resource RESTful示例,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$ resource旨在从端点检索数据,对其进行处理并将其发送回。您已经有了 其中的一些功能 ,但是您并没有真正利用它来完成它。
在您的资源上有自定义方法是很好的,但是您不想错过OOTB附带的很酷的功能。
:我认为我本来解释得不够好,但是$resource
做了一些带有回报的时髦东西。Todo.get()
和Todo.query()
两个返回 的资源对象, 并 把它传递到 回调
的GET完成时。它在幕后做了一些花哨的承诺,这意味着您可以$save()
在get()
回调实际触发之前调用,并且它将等待。最好只在promisethen()
或callBACk方法中处理资源。
var Todo = $resource('/API/1/todo/:ID');
//create a todo
var todo1 = new Todo();
todo1.foo = 'bar';
todo1.something = 123;
todo1.$save();
//get and update a todo
var 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 todos
Todo.query(function(todos) {
//do something with todos
angular.forEach(todos, function(todo) {
todo.foo += ' something';
todo.$save();
});
});
//delete a todo
Todo.$delete({ID: 123});
同样,对于在OP中发布的内容,可以获取一个资源对象,然后在其上调用任何自定义函数(理论上):
var something = src.GetTodo({ID: 123});
something.foo = 'hi there';
something.updatetodo();
我去之前尝试过OOTB实施,但是发明了自己的。而且,如果您发现自己没有使用的任何默认功能$resource
,则可能应该$http
自己使用。
从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;
});
我想使用$ resource调用我的RESTful Web服务(我仍在使用它),但是我想知道我是否首先正确地使用了AngularJS脚本。
待办事项DTO具有: {id,order,content,donE}
:cmd
因此,我可以调用api/1/todo/reset
以清除数据库中的todo表。
这是带有我的理解注释的代码:
function Todoservice($resourcE) {
var src = $resource('api/1/todo/:id:cmd',{id: "@id",cmd: "@cmd"},//parameters default
{
ListTodos: { method: "GET",params: {} },GetTodo: { method: "GET",params: { id: 0 } },CreateTodo: { method: "POST",params: { content: "",order: 0,done: false } },updateTodo: { method: "PATCH",params: { /*...*/ } },deleteTodo: { method: "deletE",ResetTodos: { method: "GET",params: { cmd: "reset" } },});
//Usage:
//GET without ID
//it calls -> api/1/todo
src.ListTodos();
//GET with ID
//it calls -> api/1/todo/4
src.GetTodo({ id: 4 });
//POST with content,done
//it calls -> api/1/todo
src.CreateTodo({ content: "learn Javascript",order: 1,done: false });
//updatE content only
//it calls -> api/1/todo/5
src.updateTodo({ id: 5,content: "learn AngularJS" });
//updatE done only
//it calls -> api/1/todo/5
src.updateTodo({ id: 5,done: true });
//RESET with cmd
//it calls -> api/1/todo/reset
src.ResetTodos();
}
我不确定的一件事是PATCH方法,我不想更新所有内容,可以仅更新一个字段吗?我是否正确构建了这段代码?
以上是大佬教程为你收集整理的AngularJS $ resource RESTful示例全部内容,希望文章能够帮你解决AngularJS $ resource RESTful示例所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。