简介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 入门实例1
Jun 25 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
Mar 06 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
Vue2.0 实现页面缓存和不缓存的方式
Nov 12 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()函数使用代码
2009/01/14 PHP
php生成RSS订阅的方法
2015/02/13 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
python cs架构实现简单文件传输
2020/03/20 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
python opencv实现图像配准与比较
2021/02/09 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
室内拓展活动方案
2014/02/13 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
小学社会实践活动总结
2014/07/03 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书