简介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 相关文章推荐
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
javascript去除空格方法小结
May 21 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
浅谈javascript基础之客户端事件驱动
Jun 10 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
Mar 30 Javascript
Layui点击图片弹框预览的实现方法
Sep 16 Javascript
javascript实现前端成语点击验证优化
Jun 24 Javascript
vue路由的配置和页面切换详解
Sep 09 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 Javascript
vue使用element-ui实现表单验证
Dec 13 Vue.js
在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
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
php中memcache 基本操作实例
2015/05/17 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python 多线程的实例详解
2017/09/07 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
医务人员自我评价
2014/01/26 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python