我正在关注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,但我没有看到合适的解释。
答案 0 :(得分:1)
在您的原始请求中,post
部分不会丢失。缺少的是/:id
部分。
您收到此网址,因为您错过了:id
部分。以冒号:
开头的部分是您在发出请求时可以提供给Post
的参数。
要提供id
,请使用以下语法:
Post.get({id: 'abc'});
这会向以下网址发出请求:
https://xxxxxxxxxxxxxxx.firebaseIO.com/posts/abc.json