我想使用$ 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", params: { id: 0 } }, 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, order, 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方法,我不想更新所有内容,可以仅更新一个字段吗?我是否正确构建了这段代码?
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
你可以做$scope.todo = Todo.get({ id: 123 })
。 .get()
然后.query()
在Resource上立即返回一个对象,并在以后用promise的结果填充它(以更新模板)。这不是一个典型的承诺,这就是为什么如果您要在调用后执行一些特殊代码,则需要使用回调或$ promise属性。但是,如果仅在模板中使用它,则无需在回调中将其分配给您的作用域。
添加回答
举报
0/150
提交
取消