javascript - 我怎样才能使 angular.js 路由长路径

标签 javascript web-applications angularjs

我正在用 angular.js 制作一个文件浏览器。 所以,我会处理一些长 url,

例如:

mydomain/folder1/sub1/grand-sub1/.././

我刚刚学习 angular 并发现 angular 有 $routeProvider,但是,似乎我应该写很多“when”来完成这项工作(如果我不定义“when”,模板将不会被使用) .

angular 是否支持“*”使所有子目录的路径使用相同的模板?

或者,还有其他方法可以处理这个问题吗?谢谢。

最佳答案

由于 $routeProvider 目前不支持通配符(see here 和答案中的 2 个链接),您必须对其进行一些修改...

http://plnkr.co/edit/OuVRSrDUvdVF5yFDHnmM?p=preview

HTML

<a href="#/dir">/</a>
<br/>
<a href="#/dir/folder1">/folder1</a>
<br/>
<a href="#/dir/folder1/sub1">/folder1/sub1</a>
<br/>
<a href="#/dir/folder1/sub1/grandsub1">/folder1/sub1/grandsub1</a>
<br/>

JavaScript

app.controller('DirCtrl', function ($scope, $route) {
  var p = $route.current.params;

  $scope.path = '/';
  if (p.p1) $scope.path += p.p1;
  if (p.p2) $scope.path += '/' + p.p2;
  if (p.p3) $scope.path += '/' + p.p3;
  if (p.p4) $scope.path += '/' + p.p4;
  if (p.p5) $scope.path += '/' + p.p5;
});

app.config(function ($routeProvider) {
  $routeProvider
    .when('/', {templateUrl: 'home.html', controller: 'HomeCtrl'})
    .when('/dir', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    .when('/dir/:p1', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    .when('/dir/:p1/:p2', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    .when('/dir/:p1/:p2/:p3', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    .when('/dir/:p1/:p2/:p3/:p4', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    .when('/dir/:p1/:p2/:p3/:p4/:p5', {templateUrl: 'dir.html', controller: 'DirCtrl'})
    /* add more as necessary */
    .otherwise({redirectTo: '/'});
});

关于javascript - 我怎样才能使 angular.js 路由长路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16600538/

相关文章:

javascript - Node js,process.env 不读取环境变量

mysql - 问题算法中的类别

javascript - 在html内部如何通过 Angular 表达式检查任何变量是否为 bool 值?

python - 搭建服务器接收和发送用户隐私信息

AngularJS - 将相同的 Controller 附加到多个 html 元素

javascript - 使用 remove() 后 Restangular/angularjs 对象不更新

javascript - 访问不存在的属性的安全方法

javascript - 展开表格中的一行

javascript - 使用单选按钮更改变量值

javascript - AJAX Web 应用程序的可用性有哪些技术限制?