Angular $resource模板没有正确地使用参数

Angular $resource template does not correctly use parameters

本文关键字:正确地 参数 resource Angular      更新时间:2023-09-26

我正试图通过JSON REST API将$resource连接到我的数据库。然而,我遇到了一个非常奇怪的问题,涉及到$resource的URL模板参数。当我调用API.get({type: "person", id: 123}, callback);时,我希望它返回http://localhost:5000/api/person/123的对象,但由于某种原因,它决定尝试GET URL http://localhost:5000/api/:type/:id/[Object object],这显然失败了。

下面是一些重现错误的代码:
var app = angular.module('app', ['ngResource']);
app.factory("API", function($resource) {
    return $resource("http://localhost:5000/api/:type/:id", null)
});
app.controller("TestCtrl", function($scope, API) {
    t = API.get({type: "person", id: "53b29e180ee099757405fb84"}, function(person) {
        console.log(person);
    });
    console.log(t);
};

我已经尝试修改默认参数(即$resource(url, {type: "@type", id: "@_id"}))没有成功。我从我的同事那里听说默认参数可以为空,它仍然应该将参数映射到模板,但它就是不会。

我可能犯了一些愚蠢的错误,但是我已经揪了几个小时的头发也没有找到catch,所以我把问题交给你了。

显然有人有一个名为ng-resource的包,它与实际的包angular-resource相似,令人误解。

我为没有早点调查这种可能性而感到无限的羞愧。