使用Angular缓存父页面数据的方法


Posted in Javascript onJanuary 03, 2017

angular做单页面应用是一个比较好的框架,但是它有一定的入门难度,对于新手来说可能会碰到很多坑,也有许多难题,大部分仔细看文档,找社区是能解决的。

但有些问题也许资料比较少,最近遇到过一个要缓存父页面的问题,就是点击进入子页后,再返回时父页面的数据要缓存下来,包括滚动条的位置。再做的过程当中查过

许多资料,都说的不很详细,今天把方法记录下来,供参考。

要想缓存,要用到嵌套路由(ui-router):

   有三个嵌套的方法:

  1. 使用“点标记法”,例如:.state('contacts.list', {})
  2. 使用parent属性,指定一个父状态的名称字符串,例如:parent: 'contacts'
  3. 使用parent属性,指定一个父状态对象,例如:parent: contacts(contacts 是一个状态对象

嵌套路由如有不明白的,大家可以自己去google下。

1.在路由中配置好后,在父页面中设置一个子view.

路由配置:

$stateProvider
 .state('parent', {})
 .state('parent.sub',{
  url: '/flightStatus/:time',
  views:{
   'subView':{
    templateUrl: 'sub.html',
    controller: ''
   }
  }
 }
);

2.配置好后,在父页面添加view和名字(如果只有一个ui-view,名字可以不要)

parent.html

<ui-view name="subView"></ui-view>
<!--其它html代码-->
……

3.这时由父页面进去后,子页面sub.html会加载到name为subView中

   在子页面中返回时,用angular的$window.history.back();

  注意:这里返回时父页面的controller将不在执行

进行以上配置后就可以缓存到父页面的数据了,返回时不会刷新,在进入子页面时大家最好把父页面隐藏(不隐藏是把内容高度设为100%),返回时再显示,这样避免子父页面都有输入框下,按下tab时会把父页面显示的bug

以上所述是小编给大家介绍的使用Angular缓存父页面数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持

Javascript 相关文章推荐
响应鼠标变换表格背景或者颜色的代码
Mar 30 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
javascript常见用法总结
May 22 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
JavaScript算法教程之sku(库存量单位)详解
Jun 29 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
JS实现简单的二元方程计算器功能示例
Jan 03 #Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 #Javascript
javascript使用递归算法求两个数字组合功能示例
Jan 03 #Javascript
jQuery仿写百度百科的目录树
Jan 03 #Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
Jan 03 #Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 #Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 #Javascript
You might like
PHP网上调查系统
2006/10/09 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
Python实例一个类背后发生了什么
2016/02/09 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Python常用特殊方法实例总结
2019/03/22 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
企业给企业的表扬信
2014/01/13 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android