在我的AngularJS应用程序中,我有这个$ resource定义......
userApp.factory('ISBN', ['$resource', function ($resource) {
return $resource('/api/search/isbn/:isbn', {
isbn : '@id'
});
}]);
......当我这样称呼时,我会期待......
$scope.Details = ISBN.get ('9780000000007');
...撰写如下网址:
/api/search/isbn/9780000000007
但它没有。它看起来像这样:
/api/search/isbn?0=9&1=7&10=0&11=0&12=7&2=8&3=0&4=0&5=0&6=0&7=0&8=0&9=0
我有其他$ resource以类似的方式定义,它们的行为与我期望的一样。我有点难过这个。任何帮助将不胜感激。
谢谢, 杰夫
答案 0 :(得分:2)
而不是ISBN.get('9780000000007')
,您应该使用ISBN.get({id: '9780000000007'})
。
您应该将对象传递给get()
函数,并且已使用@id
指定哪个键应该是资源的标识符键。其他字段作为查询字符串附加到URL。
你得到那个奇怪的URL的原因是因为你传递的字符串也是javascript中的一个对象,带有数字键和每个字符的值。这些作为查询字符串附加到URL。