简介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 相关文章推荐
贴一个在Mozilla中常用的Javascript代码
Jan 09 Javascript
JS Timing
Apr 21 Javascript
jQuery 使用手册(五)
Sep 23 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
Sep 09 Javascript
JavaScript获取服务器端时间的方法
Nov 29 Javascript
javascript验证香港身份证的格式或真实性
Feb 07 Javascript
js实现五星评价功能
Mar 08 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
Feb 15 Javascript
JS判断浏览器类型与操作系统的方法分析
Apr 30 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP数据库操作面向对象的优点
2006/10/09 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
angular动态表单制作
2018/02/23 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python文件名和文件路径操作实例
2017/09/29 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Python jieba库用法及实例解析
2019/11/04 Python
Python实现粒子群算法的示例
2021/02/14 Python
关于母亲节的感言
2014/02/04 职场文书
公司放假通知怎么写
2015/04/15 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
关于做家务的心得体会
2016/01/23 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技