AngularJS嵌套路由
发布时间:2020-12-17 16:59:01 所属栏目:安全 来源:网络整理
导读:我正在使用一个相当简单的AngularJS项目,它有一些深度路由嵌套,可以从嵌套数据结构中进行选择: angular.module('doccat',[]). config(['$routeProvider',function($routeProvider) { $routeProvider. when('/',{ templateUrl: 'partials/detail.html',contr
我正在使用一个相当简单的AngularJS项目,它有一些深度路由嵌套,可以从嵌套数据结构中进行选择:
angular.module('doccat',[]). config(['$routeProvider',function($routeProvider) { $routeProvider. when('/',{ templateUrl: 'partials/detail.html',controller: DocDetailCtrl }). when('/:p0',controller: DocDetailCtrl }). when('/:p0/:p1',controller: DocDetailCtrl }). when('/:p0/:p1/:p2',controller: DocDetailCtrl }). when('/:p0/:p1/:p2/:p3',controller: DocDetailCtrl }). when('/:p0/:p1/:p2/:p3/:p4',controller: DocDetailCtrl }). otherwise({ redirectTo: '/' }); }]); function DocDetailCtrl($scope,$routeParams) { var path = []; if ($routeParams.p0) path.push($routeParams.p0); if ($routeParams.p1) path.push($routeParams.p1); if ($routeParams.p2) path.push($routeParams.p2); if ($routeParams.p3) path.push($routeParams.p3); if ($routeParams.p4) path.push($routeParams.p4); // do stuff with path } 这在路径中有多达5层,这对我来说应该是足够的,所以它现在已经足够了.但是,底层数据可以任意嵌套,这需要任意路由. 解决方法
检查doc中的$routeProvider
angularjs $routeProvider. 特别是,在’when’的定义中,你可以读到:“path可以包含以星号(* name)开头的命名组.当路由匹配时,所有字符都以给定的名称急切地存储在$routeParams中.”因此,您只需要确保路由匹配,并且您将获得存储在$routeParams中的大量参数. 我希望它有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |