如何使用角度js ng-route有效地写出一堆页面

时间:2016-08-11 14:15:56

标签: javascript angularjs

如果我想将更多页面添加到大约100,那么我该如何编写以下代码?我只想要""的快捷方式。这在下面给出。我不想写"当" 100次。

var module = angular.module("sampleApp", ['ngRoute']);

module.config(['$routeProvider',
    function($routeProvider) {
        $routeProvider.
            when('/route1', {
                templateUrl: 'angular-route-template-1.jsp',
                controller: 'RouteController'
            }).
            when('/route2', {
                templateUrl: 'angular-route-template-2.jsp',
                controller: 'RouteController'
            }).
            otherwise({
                redirectTo: '/'
            });
    }]);

module.controller("RouteController", function($scope) {

})

2 个答案:

答案 0 :(得分:0)

module.config(['$routeProvider', 'routes'

  function($routeProvider, routes) {
    // routes is the list of my routes
    // e.g. 
    //  routes = [{
    //    url: '/about',
    //    options: {
    //      templateUrl: '/about.html',
    //      controller: 'AboutController as vm',
    //    }
    //  }]

    routes.forEach(function(route) {
      $routeProvider.when(route.url, route.options);
    });

    $routeProvider.
    otherwise({
      redirectTo: '/'
    });
  }
]);

答案 1 :(得分:0)

您也可以使用ui-router模块更清晰地实现这一目标。

strpbrk

您可以保存您的100&#39;州&#39;数组中的对象(甚至可能在它自己的js文件中),并通过var myApp = angular.module('helloworld', ['ui.router']); myApp.config(function($stateProvider) { var helloState = { name: 'hello', url: '/hello', template: '<h3>hello world!</h3>' } var aboutState = { name: 'about', url: '/about', template: '<h3>Its the UI-Router hello world app!</h3>' } $stateProvider.state(helloState); $stateProvider.state(aboutState); }); 循环它们。