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 var声明变量背后的原理示例解析
Oct 12 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
jQuery统计上传文件大小的方法
Jan 24 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
JS实现的表格行上下移动操作示例
Aug 03 Javascript
深入Vue-Router路由嵌套理解
Aug 13 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 Javascript
js实现右键弹出自定义菜单
Sep 08 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
浅谈Python的文件类型
2016/05/30 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
详解Python中is和==的区别
2019/03/21 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
如何解决安装python3.6.1失败
2020/07/01 Python
python matplotlib库的基本使用
2020/09/23 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
中式餐厅创业计划书范文
2014/01/23 职场文书
出纳担保书范文
2014/04/02 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
Vue.Draggable实现交换位置
2022/04/07 Vue.js