AngularJS $ resource RESTful示例

我想使用$ 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方法,我不想更新所有内容,可以仅更新一个字段吗?我是否正确构建了这段代码?


慕村225694
浏览 1044回答 2
2回答

呼唤远方

你可以做$scope.todo = Todo.get({ id: 123 })。 .get()然后.query()在Resource上立即返回一个对象,并在以后用promise的结果填充它(以更新模板)。这不是一个典型的承诺,这就是为什么如果您要在调用后执行一些特殊代码,则需要使用回调或$ promise属性。但是,如果仅在模板中使用它,则无需在回调中将其分配给您的作用域。
打开App,查看更多内容
随时随地看视频慕课网APP