简介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 相关文章推荐
javascript自执行函数之伪命名空间封装法
Dec 25 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
Nov 04 Javascript
VueJS实现用户管理系统
May 29 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
Jul 24 Javascript
JavaScript实现音乐播放器
Aug 14 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
ThinkPHP分页实例
2014/10/15 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python中如何使用insert函数
2020/01/09 Python
python 实现字符串下标的输出功能
2020/02/13 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
加拿大最大的书店:Indigo
2017/01/01 全球购物
美国知名生活购物网站:Goop
2017/11/03 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
《火烧云》教学反思
2016/02/23 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
Golang jwt身份认证
2022/04/20 Golang