$ resource GET请求地址解析

时间:2014-08-16 06:54:17

标签: angularjs rest url

我正在关注thinkster.io上的教程,并且URL解析对我来说有点令人费解。

app.factory('Post', function($resource){
  return $resource('https://xxxxxxxxxxxxxxx.firebaseIO.com/posts/:id.json');
});

...

$scope.posts = Post.get()

当我从控制器发出GET请求时,解析为的URL为:

https://xxxxxxxxxxxxxxx.firebaseIO.com/posts.json

这个解释对我来说不够好:

  

这会向我们的资源网址发送一个没有任何参数的get请求(因此忽略了':id'部分),这是我们存储帖子的地方。

/posts发生了什么事?我认为URL应该是:

https://xxxxxxxxxxxxxxx.firebaseIO.com/posts

代替。

这不是因为firebaseIO重定向请求,因为我查看了Google Chrome控制台中的HTTP请求标头。我还查看了documentation的$ Resource,但我没有看到合适的解释。

1 个答案:

答案 0 :(得分:1)

在您的原始请求中,post部分不会丢失。缺少的是/:id部分。

您收到此网址,因为您错过了:id部分。以冒号:开头的部分是您在发出请求时可以提供给Post的参数。

要提供id,请使用以下语法:

Post.get({id: 'abc'});

这会向以下网址发出请求:

https://xxxxxxxxxxxxxxx.firebaseIO.com/posts/abc.json