简介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 相关文章推荐
DOM2非标准但却支持很好的几个属性小结
Jan 21 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
javascript高仿热血传奇游戏实现代码
Feb 22 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
javascript实现评分功能
Jun 24 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 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
模仿OSO的论坛(五)
2006/10/09 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
PHP通用检测函数集合
2011/02/08 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
数学系毕业生的自我评价
2014/01/10 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
工厂搬迁方案
2014/05/11 职场文书
新闻发布会策划方案
2014/06/12 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
孔繁森观后感
2015/06/10 职场文书
国富论读书笔记
2015/06/26 职场文书
如何才能写好调研报告?
2019/07/03 职场文书