AngularJS 视图详解及示例代码


Posted in Javascript onAugust 17, 2016

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 视图详解及示例代码

以上就是对AngularJS 视图资料的整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
获取layer.open弹出层的返回值方法
Aug 20 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
使用Vue实现调用接口加载页面初始数据
Oct 28 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 #Javascript
AngularJS Ajax详解及示例代码
Aug 17 #Javascript
AngularJS包括详解及示例代码
Aug 17 #Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 #Javascript
AngularJS表单详解及示例代码
Aug 17 #Javascript
AngularJS模块详解及示例代码
Aug 17 #Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 #Javascript
You might like
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
半角全角相互转换的js函数
2009/10/16 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
python学习数据结构实例代码
2015/05/11 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
Django开发的简易留言板案例详解
2018/12/04 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
考核工作实施方案
2014/03/30 职场文书
年检委托书
2014/08/30 职场文书
英文慰问信
2015/02/14 职场文书
2015年教务工作总结
2015/05/23 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫