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.Encode手动解码技巧
Jul 14 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
Jul 17 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
js中 计算两个日期间的工作日的简单实例
Aug 08 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 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中的array数组类型分析说明
2010/07/27 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
vue-router 中 meta的用法详解
2019/11/01 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python中操作MySQL入门实例
2015/02/08 Python
Python实现读取并保存文件的类
2017/05/11 Python
详解Python中的正则表达式
2018/07/08 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python Selenium参数配置方法解析
2020/01/19 Python
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
高中竞选班长演讲稿
2014/04/24 职场文书
民事辩护词范文
2015/05/21 职场文书
答辩状格式范本
2015/05/22 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python