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 相关文章推荐
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
js中arguments的用法(实例讲解)
Nov 30 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
Apr 06 Javascript
编写简单的jQuery提示插件
Dec 21 Javascript
解析浏览器端的AJAX缓存机制
Jun 21 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
详解Node.js开发中的express-session
May 19 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
Vue跨域请求问题解决方案过程解析
Aug 07 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如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
Python修改Excel数据的实例代码
2013/11/01 Python
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Python中存取文件的4种不同操作
2018/07/02 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
python 元组和列表的区别
2020/12/30 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
金融事务专业求职信
2014/04/25 职场文书
教师师德演讲稿
2014/05/06 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
大学生见习总结报告
2015/06/24 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
《小小的船》教学反思
2016/02/18 职场文书
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android
Linux中各个目录的作用与内容
2022/06/28 Servers