由AngularJS $资源生成的奇怪网址

时间:2014-07-28 15:54:59

标签: angularjs

在我的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以类似的方式定义,它们的行为与我期望的一样。我有点难过这个。任何帮助将不胜感激。

谢谢, 杰夫

1 个答案:

答案 0 :(得分:2)

而不是ISBN.get('9780000000007'),您应该使用ISBN.get({id: '9780000000007'})

您应该将对象传递给get()函数,并且已使用@id指定哪个键应该是资源的标识符键。其他字段作为查询字符串附加到URL。

你得到那个奇怪的URL的原因是因为你传递的字符串也是javascript中的一个对象,带有数字键和每个字符的值。这些作为查询字符串附加到URL。