简介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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
layui表格实现代码
May 20 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
详解redux异步操作实践
Aug 15 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
基于canvas实现手写签名(vue)
May 21 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版
2006/10/09 PHP
php生成gif动画的方法
2015/11/05 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
求得div 下 img的src地址的js代码
2007/02/28 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
python实现顺序表的简单代码
2018/09/28 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
英国网上购买门:Direct Doors
2018/06/07 全球购物
六十大寿答谢词
2014/01/12 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
股东合作协议书
2014/04/14 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
大班下学期个人总结
2015/02/13 职场文书
自荐信格式模板
2015/03/27 职场文书
昆虫记读书笔记
2015/06/26 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python