我遇到从前端到后端调用路由的问题。
我在客户端使用angularjs $ state,所以示例url是
http://localhost:1234/areas/customer/edit/56e2f6345968f8b812052694
然而,当我使用$ resouce查询在服务器端调用此路由时,它会调用错误的服务器端路由。
我的工厂包含一个使用$ resource调用服务器端的方法
getCustomerByID: function(id, callback){
var cb = callback || angular.noop;
return Customer.query(id, function(success){
return cb(success);
}, function(error){
return cb(error);
}).$promise;
}
客户是以下服务
angular.module('xxx')
.factory('Customer', function ($resource) {
return $resource('/api/customer/:id/:controller', { id: '@_id' })
});
GET的服务器路由如下
router.get('/', controller.index);
router.get('/:id', controller.show);
我需要使用id命中路线,但它似乎击中了第一个
任何想法可能是什么
干杯
答案 0 :(得分:0)
按顺序处理路线,交换以下路线:
router.get('/', controller.index);
router.get('/:id', controller.show);
对此:
router.get('/:id', controller.show);
router.get('/', controller.index);
这是因为像/api/customer/:id/
这样的请求也会匹配/api/customer
,因此它会捕获第一条路线。