通过angularjs $ routeProvider传递2个变量

时间:2017-01-05 10:41:33

标签: angularjs angular-routing

我正在尝试使用$ routeProvider传递2个变量:

.when('/edition_etude/:idEtude/:domaine', {
    templateUrl: 'vues/edition_etude.html',
    controller: 'edition_etude'
})

我的功能:

$scope.editionEtude= function(etude) {
    var idEtude = etude.id_etude;
    $location.path('/edition_etude/'+idEtude+'&domaine='+domaine);
}

最后,我应该在目标控制器中得到2变量:

monApp.controller("edition_etude", function($scope,$http,$routeParams,serviceDepartements,serviceEnseignes,serviceType_etude,serviceRegions,serviceMaxid,serviceCategorie_magasin) {

var idEtude = $routeParams.idEtude;
var domaine = $routeParams.domaine; 

只要我使用1个变量,它就能很好地工作,但是只要我尝试2个变量,它就能完成工作。

这是其工作时的代码:

$routeProvider.when('/edition_etude/:idEtude', {
    templateUrl: 'vues/edition_etude.html',
    controller: 'edition_etude'
});

然后是发起事件的控制器:

$scope.editionEtude     = function(etude){
    var idEtude = etude.id_etude;
    $location.path('/edition_etude/'+idEtude);
}

最后我正确地在新控制器中获得了idEtude ar:

var idEtude = $routeParams.idEtude;

我不想使用服务!这不是重复,我检查了所有其他答案!

2 个答案:

答案 0 :(得分:1)

$location.path('/edition_etude/'+idEtude+'/'+domaine);

您不必指定参数的名称

答案 1 :(得分:0)

您的问题来自您的路径电话。

您的路线是:

.when('/edition_etude/:idEtude/:domaine', {
    templateUrl: 'vues/edition_etude.html',
    controller: 'edition_etude'
})

所以你的网址应该是

$location.path('/edition_etude/' + idEtude + '/' + domaine);

而不是

$location.path('/edition_etude/'+idEtude+'&domaine='+domaine);