矩形POST

时间:2015-11-06 05:05:44

标签: angularjs restangular

我正在使用基于任务的项目,其中我有一个RESTful背景,其中存储有关任务的JSON数据。在后端使用Flask,在前面使用AngularJS。

这列出了我的所有任务。如何将此转换为POST调用,我发送特定的任务ID以检索有关该任务的所有详细信息?

2 个答案:

答案 0 :(得分:1)

如果你有restangular list,那意味着里面的每个实例都有restagular helper函数。对你:

{id: 2}

但请注意,restangular将id作为post parametr。即.site-logo-anchor a img { display: none !important; } 将是/ url / 2

答案 1 :(得分:0)

  

如何将此转换为POST调用,我发送特定任务ID以检索有关该任务的所有详细信息?

实际上,如果您想要检索具有所有细节的特定任务,那么GET请求将比POST更合适。

在RESTful应用程序中,GET应该只是读取元素(没有用户修改)。 POST / PUT保留用于 create update 元素,阅读相关主题: PUT vs POST in REST

因此,在您的情况下,这将获得您的所有任务,并将它们分配给$scope.tasks模型:

Restangular.all('tasks').getList().then(function(response) {
    $scope.tasks= result;
});

以上getList()方法会在网址上发出GET请求:http://yourdomain.com/tasks

您也可以使用其他符号来实现相同的功能(查看Restangular文档了解详细信息):

$scope.tasks = Restangular.all('tasks').getList().$object;

或者您可以将Restangular对象分配给Task变量,它只是一个容器,包含所有有价值的Restangular方法和路由。然后,您可以在该对象上调用各种方法:

var Tasks = Restangular.all('tasks');
$scope.tasks = Tasks.getList().$object;

之后,您可以访问tasks集合中的特定任务,然后调用其他方法:

var MyTask = $scope.tasks[0];
MyTask.get() // this will do GET at URL http://yourdomain.com/tasks/123, assuming 123 is id of existing task
MyTask.post() // this will do POST at above URL
MyTask.put() // this will do POST at above URL
MyTask.save() // this will do PUT or POST - depends if MyTask is going to be udpated or created.

您还可以在网址http://yourdomain.com/tasks/123处手动查询特定任务:

Tasks.one('tasks', 123).get().then(function(response) {
    $scope.mytask = response
});