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 相关文章推荐
拖动一个HTML元素
Dec 22 Javascript
XmlUtils JS操作XML工具类
Oct 01 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
vue router下的html5 history在iis服务器上的设置方法
Oct 18 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
Sep 11 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
解析strtr函数的效率问题
2013/06/26 PHP
php类自动加载器实现方法
2015/07/28 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
js加解密 脚本解密
2008/02/22 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
python数据结构之二叉树的遍历实例
2014/04/29 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
教师实习自我鉴定
2013/12/11 职场文书
会计自荐信范文
2014/03/09 职场文书
Python 文字识别
2022/05/11 Python
Python代码实现双链表
2022/05/25 Python
浅谈Redis缓冲区机制
2022/06/05 Redis
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis