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 相关文章推荐
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
jQuery 获取多选框的值及多选框中文的函数
May 16 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
javascript+html5+css3自定义提示窗口
Jun 21 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 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
解决GD中文乱码问题
2007/02/14 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
MSN消息提示类
2006/09/05 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
django有哪些好处和优点
2020/09/01 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
优秀管理者获奖感言
2014/02/17 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
党员个人年度总结
2015/02/14 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Python3 类型标注支持操作
2021/06/02 Python
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技