This question already has answers here:
AngularJS passing data to $http.get request
                                
                                    (7个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试将标识符的值通过url传递给快递路由器,我想传递的变量是IDR,该IDR是我从$ routeParams.IDR正确获取的,现在我必须通过$ http传递它,但是我做不到。

那就是我的controller.js
($ routeParams.IDR工作正常)

app.controller("rutaDestinosCtrl", function($scope, $http, userService, $routeParams){

        vm = this;
        vm.destinos = [];
        var requestData = {
            'IDR': $routeParams.IDR //$routeParams.IDR is for example: 5
        };


        vm.funciones = {

            obtenerDestinos : function(){
            $http({
                 method: "GET",
                 url: '/privadas/rutas/obtenerDestinosRuta',
                 requestData,
                 headers: {'auth-token': userService.token}
            })
                 .then(function(respuesta){
                    vm.destinos = respuesta.data.data;
                }, function(respuesta){
                    console.log("Error:", respuesta.status);
                })

            } //obtenerDestinos

        }//funciones

        vm.funciones.obtenerDestinos();
});


通过令牌过滤器并正确到达此方法后:

router.get('/obtenerDestinosRuta', function(req,res){

    var query = "SELECT * FROM public.\"Destino\" D " +
            " JOIN public.\"RutaDestino\" RD ON D.\"IDD\" = RD.\"IDD\"" +
            " WHERE \"IDR\" = " + req.body.IDR+ " ORDER BY D.\"IDD\" ASC";

    console.log(query);

    db.query(query).spread(function(result, metadata){
        res.json({
            data: result
        })
    }).catch(function(err){
        res.status(500).send("Error: "+ err);
    })

});


我无法获取存储在RequestData中的值(该值为5),我尝试了几种没有结果的方法,在控制台“ req.body.IDR”中未定义,并且如果更改了“ req.body.IDR”在值5的陈述中,它完美地运作了,关于如何实现的任何想法?

这是来自console.log的查询结果:


  选择*从公共。“ Destino” D加入公共。“ RutaDestino” RD开
  D.“ IDD” = RD。“ IDD”其中“ IDR” =未定义OR BY BY D.“ IDD” ASC


问候。

最佳答案

您还可以输入路线定义吗?

在路由定义中,您必须指定期望的参数,如:

module.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
     when('/routeName/:IDR', {templateUrl: 'template.html', controller: myCtrl})
}]);


注意路由中的“:IDR”值。

然后在您的控制器中,您可以使用$ routeParams.IDR访问它

关于javascript - AngularJs,如何为$ http发送参数get ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45788032/

10-10 14:09