通过 angularjs 传递 2 个变量$routeProvider

Pass 2 variables through angularjs $routeProvider

提问人:user7370387 提问时间:1/5/2017 最后编辑:Mistalisuser7370387 更新时间:1/6/2017 访问量:40

问:

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

.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);
}

最后,我在这里正确地获得了 y 新控制器中的 idEtude ar:

var idEtude = $routeParams.idEtude;

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

angularjs 角度路由

评论


答:

1赞 Roux 1/5/2017 #1
$location.path('/edition_etude/'+idEtude+'/'+domaine);

您不必指定参数的名称

评论

0赞 Roux 1/5/2017
不要忘记将问题设置为“已回答”,以便人们可以看到问题已得到解决。
0赞 Mistalis 1/5/2017 #2

您的问题来自您的路径调用。

您的路线是:

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

所以你的 URL 应该是

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

而不是

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