简介AngularJS的视图功能应用


Posted in Javascript onJune 17, 2015

 AngularJS支持通过在单个页面上的多个视图的单页应用。要做到这一点AngularJS提供ng-view 和 ng-template指令,以及 $routeProvider 服务。
ng-view

ng-view 标记只是简单地创建一个占位符,是一个相应的视图(HTML或ng-template视图),可以根据配置来放置。
使用

定义一个div与ng-view在主模块中。

<div ng-app="mainApp">
...
  <div ng-view></div>

</div>

ng-template

ng-template 指令是用来创建使用script标签的HTML视图。它包含一个用于由$routeProvider映射控制器视图“id”属性。
使用

定义类型作为主模块中 ng-template 的脚本块。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>

$routeProvider

$routeProvider是组网址的配置,将它们映射相应的HTML页面或 ng-template,并附加一个控制器使用相同键的服务。
使用

定义类型作为主模块中 ng-template 的脚本块。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>

 

使用

定义主模块的脚本块,并设置路由配置。

var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

   

以下是在上面的例子中需要考虑的重要问题

  •     $routeProvider被定义为使用关键字作为'$routeProvider“下mainApp模块的配置功能;
  •     $routeProvider当定义了URL“/addStudent”映射到“addStudent.html”。 addStudent.html应存在于相同的路径主要的html 页面。如果htm页面没有定义,那么ng-template被id=“addStudent.html”使用。我们已经使用了ng-template;
  •     “otherwise”是用来设置的默认视图;
  •     “conlloer”是用来设置该视图对应的控制器;

例子

下面的例子将展示上述所有指令。
testAngularJS.html

<html>
<head>
  <title>Angular JS Views</title>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.min.js"></script>
</head>
<body>
  <h2>AngularJS Sample Application</h2>
  <div ng-app="mainApp">
   <p><a href="#addStudent">Add Student</a></p>
   <p><a href="#viewStudents">View Students</a></p>
   <div ng-view></div>
   <script type="text/ng-template" id="addStudent.html">
     <h2> Add Student </h2>
     {{message}}
   </script>
   <script type="text/ng-template" id="viewStudents.html">
     <h2> View Students </h2>   
     {{message}}
   </script> 
  </div>

  <script>
   var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

     mainApp.controller('AddStudentController', function($scope) {
      $scope.message = "This page will be used to display add student form";
     });

     mainApp.controller('ViewStudentsController', function($scope) {
      $scope.message = "This page will be used to display all the students";
     });
  </script>
</body>
</html>

结果

在Web浏览器中打开textAngularJS.html。看到结果如下:

简介AngularJS的视图功能应用

Javascript 相关文章推荐
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
Sep 11 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
JavaScript 中有关数组对象的方法(详解)
Aug 15 Javascript
JavaScript实现实时更新系统时间的实例代码
Apr 04 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
Dec 21 Javascript
vuex与组件联合使用的方法
May 10 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 Javascript
详解vue 2.6 中 slot 的新用法
Jul 09 Javascript
在AngularJS中使用AJAX的方法
Jun 17 #Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 #Javascript
AngularJS的表单使用详解
Jun 17 #Javascript
举例讲解AngularJS中的模块
Jun 17 #Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 #Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 #Javascript
JavaScript AOP编程实例
Jun 16 #Javascript
You might like
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP多维数组排序array详解
2017/11/21 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
python虚拟环境完美部署教程
2019/08/06 Python
python实现统计代码行数的小工具
2019/09/19 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
房地产销售计划书
2014/01/10 职场文书
《猫》教学反思
2014/02/26 职场文书
工作决心书范文
2014/03/11 职场文书
法制宣传实施方案
2014/03/13 职场文书
国贸专业求职信
2014/06/28 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
淘宝好评语句大全
2014/12/31 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
vue实现登陆页面开发实践
2022/05/30 Vue.js
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python