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 相关文章推荐
实例:尽可能写友好的Javascript代码
Oct 09 Javascript
点击下载链接 弹出页面实现代码
Oct 01 Javascript
javascript 动态生成私有变量访问器
Dec 06 Javascript
js特效,页面下雪的小例子
Jun 17 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
Mar 25 Javascript
微信小程序 template模板详解及实例代码
Mar 09 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
JS数组去重详情
Nov 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缓存技术介绍
2006/11/25 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP实现货币换算的方法
2014/11/29 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
vue实现手机端省市区区域选择
2019/09/27 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
python实现与redis交互操作详解
2020/04/21 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
农业大学毕业生的个人自我评价
2013/10/11 职场文书
毕业生自荐书
2014/02/03 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
房屋授权委托书范本
2014/10/07 职场文书
三方合作意向书范本
2015/05/09 职场文书
山楂树之恋观后感
2015/06/11 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS