使用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 相关文章推荐
javascript 异常处理使用总结
Jun 21 Javascript
dwz 如何去掉ajaxloading具体代码
May 22 Javascript
jQuery选择器全集详解
Nov 24 Javascript
理解javascript封装
Feb 23 Javascript
使用JS中的exec()方法构造正则表达式验证
Aug 01 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
Vue.js基础学习之class与样式绑定
Mar 20 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
用js编写留言板
Mar 17 Javascript
vue项目打包后请求地址错误/打包后跨域操作
Nov 04 Javascript
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许愿墙模块功能分析
2013/06/25 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
node.js的事件机制
2017/02/08 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
python中sleep函数用法实例分析
2015/04/29 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
如何基于Python实现数字类型转换
2020/02/07 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
小学门卫岗位职责
2013/12/17 职场文书
房屋公证委托书
2014/04/03 职场文书
旅游安全协议书
2014/04/21 职场文书
奠基仪式策划方案
2014/05/15 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers