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实现仿淘宝套餐选择插件
Mar 04 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
jQuery Validate 校验多个相同name的方法
May 18 jQuery
详谈js原型继承的一些问题
Sep 06 Javascript
Vue的百度地图插件尝试使用
Sep 06 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
微信小程序开发之自定义tabBar的实现
Sep 06 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
Sep 26 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
Aug 06 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
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数组的使用方法小结
2010/09/23 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
js数组的基本使用总结
2021/01/18 Javascript
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python实现微信小程序自动回复
2018/09/10 Python
python实现图片识别汽车功能
2018/11/30 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
医学院学生的自我评价分享
2013/11/19 职场文书
读书之星事迹材料
2014/05/12 职场文书
广播体操比赛口号
2014/06/10 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
win sever 2022如何占用操作主机角色
2022/06/25 Servers