0

我正在尝试提出请求

....port/trimService/fragments/?fragment_name=:fragmentName

但是,如果我尝试将“?fragment_name”作为参数,它会中断。由于我将收到更多请求,因此我的操作会发生变化,因此我不能将其留在资源的 url 部分。

angular.module(foo).factory('FragmentService', ['$resource',
function ($resource)
{
    var FragmentService = $resource('.../fragments/:action:fragmentName',
    {},
    {
        'getFragments':
        {
            method: 'GET',
            isArray: true,
            params:
            {
                fragmentName: "@fragmentName",
                action: "?fragment_name="
            }
        }

    });
    return FragmentService;
}
]);

截至目前,我不知道我的 URL 实际输出的是什么。

编辑:我按照下面提到的 /u/akonsu 更改了我的资源。我还添加了我的控制器,因为它仍然无法正常工作。

angular.module(foo).factory('FragmentService', ['$resource',
function ($resource)
{
    var FragmentService = $resource('.../fragments/',
    {},
    {
        'getFragments':
        {
            method: 'GET',
            isArray: true,
            params:
            {
                fragmentName: "@fragmentName",
            }
        }

    });
    return FragmentService;
}
]);


angular.module(foo).controller('FragmentController', ['$scope', 'FragmentService',
function ($scope, FragmentService)
{
    $scope.fragmentQuery = {
        fragmentName: 'a',
    };


    $scope.fragmentQuery.execute = function ()
    {
        if ($scope.fragmentQuery.fragmentName == '')
        {
            $scope.fragments = {};
        }
        else
        {
            $scope.fragments = FragmentService.getFragments(
            {
                fragmentName: $scope.fragmentQuery.fragmentName,
            });
        }
    };
    $scope.fragmentQuery.execute();

}

]);

4

1 回答 1

1

尝试在资源 URL 中完全省略查询字符串,并将您的fragmentName作为参数提供给操作调用。如果它不在 URL 参数列表中,则应将其添加到查询字符串中。

$resource(".../port/trimService/fragments/").get({fragmentName: 'blah'})
于 2013-07-31T20:40:46.860 回答