AngularJS中的动态路径参数

时间:2014-07-17 18:35:24

标签: angularjs angularjs-routing

我熟悉angularjs

当我想将路由添加到我的应用程序时,我使用$routeProvider

$routeProvider.when()中,我定义路线。

如何定义路由如果我有类似以下结构的目录浏览器:

http://myfolderbrowserapp.com/:folder1/:folder2/.../:folderN

是否可以使用angularjs:

$routeProvider.when('/**', {
    template:'template'
})

角度布线是否可行?如果没有,是否有解决方法?

请帮忙

1 个答案:

答案 0 :(得分:3)

来自$routeProvider docs

  

path可以包含以冒号开头并以a结尾的命名组   star:eg:name*。所有字符都热切地存储在$ routeParams中   路线匹配时在给定名称下。

所以你可以定义

$routeProvider.when('/:folders*', {
    template:'template'
})

然后(在控制器中)。

$rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
    if (angular.isDefined($routeParams.folders))
        var foldersArray = $routeParams.folders.split('/');
});

然而,路径定义/:folders*过于通用,即使在您不想要的情况下也可能匹配(不知道您的其他路径如何)。