【发布时间】:2018-01-28 23:49:31
【问题描述】:
我正在尝试通过 url 将标识符的值传递给快速路由器,我要传递的变量是 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 的查询结果:
SELECT * FROM public."Destino" D JOIN public."RutaDestino" RD ON D."IDD" = RD."IDD" WHERE "IDR" = undefined ORDER BY D."IDD" ASC
问候。
【问题讨论】:
-
我的路线和你的答案一样,效果很好,问题是其他的
-
在我的控制器上,我的 IDR 很好
-
你在使用路由提供者吗?还是国家提供者?
-
RouteProvider,但效果很好
标签: javascript angularjs angular-ui-router