Angularjs 如何将搜索id发送到“$resource”prodriver?

Angularjs 如何将搜索id发送到“$resource”prodriver?,angularjs,angular-routing,Angularjs,Angular Routing,当用户单击某个元素时,我正在更改搜索参数。更新搜索参数后,我的url位置更改为: http://localhost:3000/#/projectSummary/1?id=3 现在我如何像这样发送我的$routeParams?http://localhost:3000/#/projectSummary/1/3 以下是我的尝试: $scope.conractorInfo = function ( contractor ) { $location.search

当用户单击某个元素时,我正在更改搜索参数。更新搜索参数后,我的url位置更改为:

http://localhost:3000/#/projectSummary/1?id=3

现在我如何像这样发送我的
$routeParams
http://localhost:3000/#/projectSummary/1/3

以下是我的尝试:

    $scope.conractorInfo = function ( contractor ) {

                $location.search('id', contractor.Id); //setting id

                console.log($routeParams.id) //getting `1` not 1/3 !?

server.contractor.get({id:$routeParams.id+'/'+contractor.Id}).$promise.then(function (data) {

                    console.log(data);

                });

            }
这是我的server.js

(function () {

    "use strict";

    angular
        .module("tcpApp")
        .factory("server", ['$resource', function ($resource) {

            var base = 'http://azvsptcsdev02:678/_vti_bin/CPMD.WEBSERVICE/ProjectInfoService.svc/';

            console.log(base + 'GetProjectDetails')

            return {

                splash : $resource( base + 'GetProjectDetails'),

                summary : $resource( base  + 'GetProjectByID/:id'),

                contractor : $resource( base + 'projects/:id/:id')

            }

        }]);

})();

您需要为2个不同的参数配置$resource

现在,您在url中使用了两次相同的参数,因此无法将对象键解析为两个不同的键

它应该更像:

// factory
contractor : $resource( base + 'projects/:id/:contid')

// controller
server.contractor.get({id:$routeParams.id, contid:contractor.Id})

它起作用了。难道我不能从
$routeParams
设置
contid
吗?只需对象id就足够了?不确定这意味着什么,但只要你让它工作……我想一切都很好