【问题标题】:Angular $routeprovider - filename as parameterAngular $routeprovider - 文件名作为参数
【发布时间】:2016-10-14 21:10:35
【问题描述】:

我有一些我想以这样的角度支持的旧路线:

/2345.aspx
/4321.aspx
/123.aspx

有没有办法用$routeprovider 映射?

类似:

 .when('/{path:.aspx}', {
    templateUrl : 'src/ng-app/views/posts/post.html',
        controller : 'postController'
    })

【问题讨论】:

    标签: angularjs routes


    【解决方案1】:

    总是首选使用 ui-router 而不是 ng-router,后者更能处理状态。有关两者区别的详细信息,请参阅以下链接。

    What is the difference between angular-route and angular-ui-router?

    【讨论】:

      【解决方案2】:

      此代码示例使用ui-router:

      'use strict';
      
      var states = function ($stateProvider, $urlRouterProvider) {
      
        $stateProvider
          .state('main.post', {
            url: '/:postId' + '.aspx',
            templateUrl: 'src/ng-app/views/posts/post.html',
            controller: 'PostCtrl'
          });
      };
      
      states.$inject = [
        '$stateProvider',
        '$urlRouterProvider'
      ];
      

      【讨论】:

        【解决方案3】:

        这很有效:

        .when('/:path.aspx', {
             templateUrl : 'src/ng-app/views/posts/post.html',
             controller : 'postController'
        })
        

        【讨论】:

        • 我也是这么想的,但是文档说: path 可以包含以冒号开头的命名组:例如:姓名。当路由匹配时,直到下一个斜杠的所有字符都匹配并存储在 $routeParams 中给定名称下。。因此,如果文档是正确的,它不应该只是工作。
        猜你喜欢
        • 1970-01-01
        • 2012-06-01
        • 2015-09-01
        • 2015-07-12
        • 1970-01-01
        • 2011-07-06
        • 1970-01-01
        • 2012-09-16
        • 1970-01-01
        相关资源
        最近更新 更多