1

这是示例设置:

var editor = angular.module("editor",['ngResource']);
editor.factory("Provider",function($resource){
    return $resource('/api/test/1').get();
})

function ctrl($scope,Provider){
    $scope.sections = Provider; 
}

我的问题是,在萤火虫中,我看到有两个 GET 请求被发送:一个在 /api/test/1,一个在 /api/test/1/。

有什么想法可能导致这种情况吗?

4

2 回答 2

1

我发现只是在解决问题/#后添加。/1

改变:

return $resource('/api/test/1')....

至:

return $resource('/api/test/1/#')....
于 2014-05-31T01:27:59.463 回答
1

为了完成,我相信$http会在您的文件夹结构中“短路”,只需抓住您指向它的资源并且可以在项目中访问,而$resource旨在与外部源通信,通常是外部 RESTful api . 在我实现它的应用程序中,我经常定义一个变量,我的各种$resource定义都可以访问它,正如您将在我定义的变量中看到的那样API

在这种情况下,您也似乎是1作为某种 id 传递的。

var API = 'http://localhost\\:#####/api/';

editor.factory('Provider', function ($resource) {
    return $resource(API + 'test/:id', { id: '@id' }, { });
});

然后实施

function ctrl($scope, Provider){
    var myVarToPass = 1;

    Provider.get({ id: myVarToPass }, function (result) {
        //single call here as soon as controller loads
    });
}
于 2014-01-07T01:27:09.987 回答