AngularJS支持通过在单个页面上的多个视图的单页应用。要做到这一点AngularJS提供ng-view 和 ng-template指令,以及 $routeProvider 服务。
<! DOCTYPE html >
< html ng-app ="myapp" >
< head >
< meta charset ="UTF-8" >
< title ></ title >
< script src ="js/angular.js" type ="text/javascript" charset ="utf-8" ></ script >
< script src ="js/angular-route.js" type ="text/javascript" charset ="utf-8" ></ script >
</ head >
< body >
< div class ="box" ng-controller ="control" >
< a href ="#add" > 添加学生 </ a >
< a href ="#show" > 显示学生 </ a >
</ div >
< div ng-view ></ div >
< script type ="text/ng-template" id ="add.html" >
< h3 > 添加学生信息 < / h3>
{{message}}
</ script >
< script type ="text/ng-template" id ="show.html" >
< h3 > 显示学生信息 < / h3>
{{message}}
</ script >
</ body >
</ html >
< script type ="text/javascript" >
var app = angular.module( " myapp " ,[ " ngRoute " ]);
// angularjs 1.6.0 以上版本需要配置
app.config([ " $locationProvider " , function ($locationProvider){
$locationProvider.hashPrefix( "" );
}]);
app.config( function ($routeProvider){
$routeProvider.when( " /add " ,{templateUrl: " add.html " ,controller: " control " }).
when( " /show " ,{templateUrl: " show.html " ,controller: " control2 " }).
otherwise({templateUrl: " show.html " ,controller: " control2 " });
})
app.controller( " control " , function ($scope){
$scope.message = " 这是增加学生信息的页面 " ;
})
app.controller( " control2 " , function ($scope){
$scope.message = " 这是展示学生信息的页面 " ;
})
</ script >
以下是在上面的例子中需要考虑的重要问题:
$routeProvider被定义为使用关键字作为'$routeProvider“下mainapp模块的配置功能;
$routeProvider当定义了URL“/add”映射到“add.html”。 add.html应存在于相同的路径主要的html 页面。如果htm页面没有定义,那么ng-template被id=“add.html”使用。我们已经使用了ng-template;
“otherwise”是用来设置的默认视图;
“controller”是用来设置该视图对应的控制器;
结果如下:
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222970