Javascript 在angularjs中将多个参数从控制器传递到工厂

Javascript 在angularjs中将多个参数从控制器传递到工厂,javascript,angularjs,Javascript,Angularjs,我正在按照以下方式将三个参数从控制器传递到工厂 在我的控制器中,我试图传递三个参数id、sdt和edt $scope.val = function () { $scope.tech = techRepository.getTech.query({ id: $scope.id, sdt: $scope.sDate, edt: $scope.eDate }, function(data) { scope.tech = data; });

我正在按照以下方式将三个参数从控制器传递到工厂

在我的控制器中,我试图传递三个参数id、sdt和edt

 $scope.val = function () {
        $scope.tech = techRepository.getTech.query({ id: $scope.id, sdt: $scope.sDate, edt: $scope.eDate }, function(data) {
            scope.tech = data;
        });
    };
在我的工厂里我有

App.factory('techRepository', ['$resource', function ($resource) {
    return {
       getTech: $resource('/api/Tech/GetRange/:id', {id: '@id', start: '@sdt', end: '@edt'}, {query: {method: 'GET', isArray:true}})
    };
}]);

当我运行此命令时,会出现错误的请求错误。请让我知道如何传递多个参数。谢谢

假设您希望查询字符串中的
:id
替换为
$scope.id
的值,并附加两个查询参数(
sdt
edt
),如下所示:

http://www.example.com/api/Tech/GetRange/123?edt=20140610&sdt=20140609
您可能希望看到的URL如下所示:

http://www.example.com/api/Tech/GetRange/123?end=20140610&start=20140609
。。。在这种情况下,您的代码应该如下所示:

// in controller
$scope.val = function () {
    $scope.tech = techRepository.getTech.query({ id: $scope.id, start: $scope.sDate, end: $scope.eDate }, function(data) {
        scope.tech = data;
    });
};

.factory('techRepository', ['$resource', function ($resource) {
    return {
        getTech: $resource('/:id', {id: '@id'}, {query: {method: 'GET', isArray:true}})
    };
}]);

请参见浏览器调试器控制台中的网络调用。查看正在发送的参数,您可能会对错误有所了解。