简介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 div 居中技巧应用介绍
Nov 24 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
Apr 26 Javascript
JQuery 在线引用及测试引用是否成功
Jun 24 Javascript
jquery密码强度校验
Dec 02 Javascript
Select下拉框模糊查询功能实现代码
Jul 22 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
Jan 17 Javascript
vue: WebStorm设置快速编译运行的方法
Oct 18 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
微信小程序缓存支持二次开发封装实现解析
Dec 16 Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 Javascript
vue项目中微信登录的实现操作
Sep 08 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模板Switch标签用法示例
2014/06/30 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python调用c++传递数组的实例
2019/02/13 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Django 拆分model和view的实现方法
2019/08/16 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
应用数学自荐书范文
2013/11/24 职场文书
产品售后服务承诺书
2014/05/21 职场文书
2015年教师新年寄语
2014/12/08 职场文书
三峡导游词
2015/01/31 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers