Angular Js中每个页面的显示都需要三个要素:页面的代码,控制器和页面的URL;
当要在同一个页面上呈现不同的视图时,这就需要配置路由啦;
angular.js已经为我们封装了一个独立的路由工具ng-route;
ng-route是靠URL来改变显示的试图的。
1、首先在主页面中,嵌入模板视图:为当前路由把对应的视图模板载入到布局模板中:
<body>
<div ng-view> </div>
</body>
同时,在主页中定义一个Angular.Js应用程序,以订餐大师为例:
ng-app = "order_master_app"; //''号里为应用程序的名字;
2、引入文件和依赖:因为ng-route模块包含在一个独立的文件中,所以要在引入文件页面中引入该文件,如下:
<script src="http://code.angularjs.org/1.2.5/angular.min.js"></script>
<script src="http://code.angularjs.org/1.2.5/angular-route.min.js"></script>
3、配置路由:
1)声明一个基本的Angular app,并引入ngRoute:
var app = angular.module('order_master_app',['ngRoute']);
2)Angular JS中应用的路由通过$routeProvider来声明,它是$route服务的提供者:
app.config(function ($routeProvider){
$routeProvider
.when('/',{
templateUrl:'HTML/order_meals.html',
controller:'OrderMealsCtrl'
})
});
上述代码中,$routeProvider定义了一个URL映射:‘/’使用HTML/order_meals.html作为模板,OrderMealsCtrl作为控制器;
3)route的控制器:设置控制器,可以动态的修改模板中的代码,那么如何配置控制器呢,如下所示:
app.controller('OrderMealsCtrl',function($scope, $location){
$scope.choose_order = function(){
$location.path('choose_order_meals');
};
})
以上代码所示,点击跳转事件choose_order(),有控制器OrderMealsCtrl控制跳转到choose_order_meals这一个页面,从而实现了页面的跳转功能。