Angularjs RESTul资源请求

时间:2013-07-31 20:32:49

标签: rest angularjs

我正在尝试提出请求

....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;
}
]);

截至目前,我不知道我的网址实际输出了什么。

编辑:我改变了我/ 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();

}

]);

1 个答案:

答案 0 :(得分:1)

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

$resource(".../port/trimService/fragments/").get({fragmentName: 'blah'})