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