Page 120 - AngularJS权威教程
P. 120

100  第 12 章  多重视图和路由


                     这里我们用了数组这种特殊的依赖注入语法。查看第13章获取更多关于这种语法的
                 内容。

                 现在,我们可以用when方法来添加一个特定的路由。这个方法可以接受两个参数(when(path,
             route))。

                 下面的例子展示了如何创建一个独立的路由:

                 angular.module('myApp', []).
                     config(['$routeProvider', function($routeProvider) {
                         $routeProvider
                             .when('/', {
                                 templateUrl: 'views/home.html',
                                 controller: 'HomeController'
                             });
                     }]);

                 第一个参数是路由路径,这个路径会与$location.path进行匹配,$location.path也就是
             当前URL的路径。如果路径后面还有其他内容,或使用了双斜线也可以正常匹配。我们可以在
             URL中存储参数,参数需要以冒号开头(例如:name),后面会讨论如何用$routeParams读取这
             些参数。

                 第二个参数是配置对象,决定了当第一个参数中的路由能够匹配时具体做些什么。配置对象
             中可以进行设置的属性包括controller、template、templateURL、resolve、redirectTo和
             reloadOnSearch。
                 一个复杂的路由方案会包含多个路由,以及一个可以将所有意外路径进行重定向的捕获器。

                 angular.module('myApp', []).
                     config(['$routeProvider', function($routeProvider) {
                         $routeProvider
                             .when('/', {
                                 templateUrl: 'views/home.html',
                                 controller: 'HomeController'
                             })
                             .when('/login', {
                                 templateUrl: 'views/login.html',
                                 controller: 'LoginController'
                             })
                             .when('/dashboard', {
                                 templateUrl: 'views/dashboard.html',
                                 controller: 'DashboardController',
                                 resolve: {
                                     user: function(SessionService) {
                                         return SessionService.getCurrentUser();
                                     }
                                 }
                             })
                             .otherwise({
                                 redirectTo: '/'
                             });
                     }]);
                 1. controller

                 controller: 'MyController'
                 // 或者
   115   116   117   118   119   120   121   122   123   124   125