简介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 相关文章推荐
IE/FireFox具备兼容性的拖动代码
Aug 13 Javascript
IE下js调试工具Companion.JS
Oct 15 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
Jul 26 Javascript
js实现的复制兼容chrome和IE
Apr 03 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
AngularJs  unit-testing(单元测试)详解
Sep 02 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
Node 自动化部署的方法
Oct 17 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 Javascript
vue axios请求频繁时取消上一次请求的方法
Nov 10 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 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
第十节--抽象方法和抽象类
2006/11/16 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
javascript中this的四种用法
2015/05/11 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
vue router 配置路由的方法
2018/07/26 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python 发送json数据操作实例分析
2019/10/15 Python
终端业务员岗位职责
2013/11/27 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
政治学求职信
2014/06/03 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
国际贸易实训报告
2014/11/05 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android