在AngularJs应用中,我们可以將html碎片写在一个单独的文件中,然后在其他页面中將该段碎片加载进来。如果有多个碎片文件,我们还可以在控制器中根据用户的操作动态的加载不同的碎片,从而达到切换视图的效果。

先来看看笔者写好的一个案例吧:

这两首词实际上是两个html碎片,分别写在page1.html和page2.html。下面是这两个文件的内容:

<!--page1.html内容-->
<div><p>《南乡子·登京口北固亭有怀》</p><p>何处望神州?满眼风光北固楼。千古兴亡多少事,悠悠,不尽长江滚滚流。</p><p>年少万兜鍪,坐断东南战未休。天下英雄谁敌手,曹刘。生子当如孙仲谋。</p>
</div>
<!--page2.html内容-->
<div><p>《蝶恋花》</p><p>伫倚危楼风细细,望极春愁,黯黯生天际。草色烟光残照里,无言谁会凭阑意。</p><p>拟把疏狂图一醉,对酒当歌,强乐还无味。衣带渐宽终不悔,为伊消得人憔悴。</p>
</div>

接下来我们看看如何实现这两个碎片的切换。

<!DOCTYPE html>
<html ng-app="routeMod">
<head lang="en"><meta charset="UTF-8"><script type="text/javascript" src="angular-1.3.0.14/angular.js"></script><script type="text/javascript" src="angular-1.3.0.14/angular-route.js"></script><link type="text/css" href="css/tutorial07.css" rel="stylesheet"><title>tutorial07.html</title>
</head>
<body><header>Header</header><div id="content" ng-controller="MultiViewController"><div  id="myView" ng-view="myView" ng-init="init()"></div><div id="btnDiv"><button ng-click="prePage()">上一页</button><button ng-click="nextPage()">下一页</button></div></div><footer>Copyright:Rongbo_J</footer><script>var routeMod = angular.module('routeMod', ['ngRoute']);routeMod.config(['$routeProvider',function($routeProvider){$routeProvider.when('/1',{templateUrl:'tutorial07/page1.html',controller:'MultiViewController'}).when('/2',{templateUrl:'tutorial07/page2.html',controller:'MultiViewController'})}])routeMod.controller("MultiViewController",function($scope,$log,$location){$scope.init = function () {$location.path("/1");}$scope.prePage = function () {$log.info("prePage");$location.path("/1");};$scope.nextPage = function () {$log.info("nextPage");$location.path("/2");};});</script>
</body>
</html>

这里我们需要用到AngularJs的路由模块ngRoute,模块代码封装在angular-route.js文件,和上节一样我们我们需要引入它。

<script type="text/javascript" src="angular-1.3.0.14/angular-route.js"></script>

然后将它注入到我们的模块中,代码如下:

var routeMod = angular.module('routeMod', ['ngRoute']);

接下来的工作是配置html碎片的访问路径,我们需要调用模块的config方法来对$routeProvider服务进行配置,代码如下:

 routeMod.config(['$routeProvider',function($routeProvider){$routeProvider.when('/1',{templateUrl:'tutorial07/page1.html',controller:'MultiViewController'}).when('/2',{templateUrl:'tutorial07/page2.html',controller:'MultiViewController'})}])

我们通过ng-view指令定义了一个视口,在控制器中调用$location.path()方法来指定在该视口中加载哪一个碎片。

源码地址:https://github.com/rongbo-j/angularjs

AngularJs轻松入门(七)多视图切换相关推荐

  1. 四、vue前端路由(轻松入门vue)

    轻松入门vue系列 Vue前端路由 七.Vue前端路由 1. 路由的基本概念与原理 后端路由 前端路由 实现简单的前端路由 vue-router基本概念 2. vue-router的基本使用 基本使用 ...

  2. tableau必知必会之使用参数操作在同一视图切换指标

    前言 我们之前分享过两个"在同一视图切换图表"的例子:如何在同一视图中切换不同图表和使用计算实现同一视图切换相同分析维度的图表. 前者利用容器的方式,可以实现图表在视图物理位置的切 ...

  3. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

  4. 日语输入法电脑版_日语轻松入门小百科

    如果你一直以来都对日语抱有强烈的兴趣,那么就赶紧跟我一起轻松入门吧~ 科普之一:日语五十音图 什么是假名?什么是五十音图? 日语的字母叫做假名,每个假名代表一个音节.假名有两种书写方式,即平假名和片假 ...

  5. 统一建模语言UML轻松入门(1)――基本概念

    统一建模语言UML轻松入门(1)――基本概念 --------------------------------------------------------------------- 宋宝华 ema ...

  6. 用Angular制作单页应用视图切换动画

    视图,动画 单页应用(Single Page Web Application)往往有一个基本的要点,那就是把多个视图集成到一个网页内,然后去控制这些视图的显示和隐藏.此外,视图的切换动作几乎都会引入动 ...

  7. AI轻松入门,AI零基础入门,AI初级教学,

    2020的下半年已经开启了,大家还记得美剧<疑犯追踪>(Person of Interest)中贯穿全剧的机器宝宝么?从开始的训练学习,进化到可以自我更新.自我维护.自我修复,乃至最终进化 ...

  8. 1、Canopen 轻松入门

    Canopen 轻松入门--笔记 1.Canopen在ISO层级中的位置 2.CANopen 的预定义报文 ID 分类 2.1 网络管理(NMT)与特殊协议(Special protocols)报文 ...

  9. scrum看板视图切换时间线视图做项目管理

    企业需要开发一个项目,可以制作时间线进行管理,以便参与者和管理者了解项目的时间进度.项目进行到哪一步,参与者有哪些,责任人是谁,这些都可以通过时间线进行展示. 「时间线视图」是一种比甘特图更轻量.更实 ...

最新文章

  1. maven安装错误履历
  2. Ubuntu 9.10 Server (Karmic) 迁移Bugzilla
  3. 从Matlab中导出不含白边的图片及设置画布尺寸及图片位置
  4. C语言程序设计的常用算法
  5. CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention
  6. python关联分析引擎_PowerBI x Python 之关联分析(上)
  7. shell编程系列20--文本处理三剑客之awk常用选项
  8. gfs mysql_linux搭建gfs系统--iscsi+GFS实现网络存储
  9. jquery练习——简单的图片结果展示效果
  10. 怎么看电脑系统是win几_做设计,用win系统 还是苹果MAC电脑更好 (PS举例)
  11. 【C#】Skip和Tack方法实现分页
  12. JDK 的 ORACLE 官网下载步骤
  13. 威锋 VL817-Q7 HUB 芯片,一进四出USB3.1gen1 5G速率传输。
  14. 华为C语言编程规范(整理)
  15. sel4白皮书翻译 | sel4 whitepaper | sel4简介
  16. 从2014全球出版业50强排行榜看出版产业的格局演变
  17. TCP 协议如何保证可靠传输?
  18. 吉首大学第七届“新星杯”程序设计大赛---补题概况
  19. 千千静听打开卡拉OK功能和弹窗广告过滤
  20. 远程安装WMF5.1遇到的坑

热门文章

  1. HTTP 各种状态码代表的含义
  2. java 字节流 字符流 的详细介绍
  3. android 在状态栏耳机图标显示图标显示图标显示图标,Android 通知栏图标
  4. linux安装firefox
  5. WooCommerce REST API的初学者指南
  6. docker的部署及使用
  7. (八)二叉树—线索二叉树
  8. 初学者C语言练习题-指针
  9. 根据目标检测结果裁剪bbox保存到本地,python,opencv
  10. GitHub 小白入门