简介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中数组对象的那些自带方法介绍
Mar 12 Javascript
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
Mar 05 Javascript
html文档中的location对象属性理解及常见的用法
Aug 13 Javascript
js鼠标滑过图片震动特效的方法
Feb 17 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
JS排序之快速排序详解
Apr 08 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 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之curl设置超时实例
2014/11/03 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
numpy库reshape用法详解
2020/04/19 Python
python一些性能分析的技巧
2020/08/30 Python
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
团结就是力量演讲稿
2014/05/21 职场文书
2014年信用社工作总结
2014/11/25 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
环保守法证明
2015/06/24 职场文书
2015元旦感言
2015/12/09 职场文书
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers