Angular2监听页面大小变化的解决方法
一、现象
全屏页面中的图表,在很多的时候需要 resize 一把,以适应页面的大小变化
二、解决
1、引入 :
import { Observable } from 'rxjs';
2、使用(在ngOnInit方法中):
ngOnInit() {
// 页面监听
Observable.fromEvent(window, 'resize')
.debounceTime(100) // 以免频繁处理
.subscribe((event) => {
// 这里处理页面变化时的操作
console.log('come on ..');
});
}
三、总结
研究有没有更多的方法可以在切换时,注销这些监听?以免出现内存泄漏。尽可能在ngOnDestroy() 方法中。
以上所述是小编给大家介绍的Angular2监听页面大小变化的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
Angular2监听页面大小变化的解决方法
一.现象 全屏页面中的图表,在很多的时候需要 resize 一把,以适应页面的大小变化 二.解决 1.引入 : import { Observable } from 'rxjs'; 2.使用(在ngOnInit方法中): ngOnInit() { // 页面监听 Observable.fromEvent(window, 'resize') .debounceTime(100) // 以免频繁处理 .subscribe((event) => { // 这里处理页面变化时的操作 console.lo
-
关于Vue不能监听(watch)数组变化的解决方法
目录 一.vue监听数组 二.vue无法监听数组变化的情况 一.vue监听数组 vue实际上可以监听数组变化,比如 data () { return { watchArr: [], }; }, watchArr (newVal) { console.log('监听:' + newVal); }, created () { setTimeout(() => { this.watchArr = [1, 2, 3]; }, 1000); }, 在比如使用splice(0,2,3)从数组下标0删除两个元
-
vue中watch监听不到变化的解决
目录 watch监听不到对象内部的变化 解决方法: watch的handler方法的两个参数值相同 解决方法: 全部代码 watch监听不到对象内部的变化 有的时候vue会出现这种现象,无法监听到复杂对象内部的变化:当对象里面原本有某一个属性,并对这个属性操作时,watch是可以监听到当前属性的变化的.但是,若对象里面本没有这个属性的时候,在操作时将属性添加进去,同时包括之后对这个属性的操作,watch是都检测不到的.这是因为vue的watch会在初始化的时候通过object.definePro
-
jquery 实时监听输入框值变化的完美方法(必看)
只需要同时绑定 oninput 和 onpropertychange 两个事件,但是这并不完美 $('.input-form :input').bind('input propertychange', function() { //获取.input-form下的所有 <input> 元素,并实时监听用户输入 //逻辑 }) 以上代码在因为用的bind,所以当遇到追加的新input标签时,则不能监听了. 如下情景: 由上图可以看到189和135号码是可以监听的,但是新追加的178和188则无效.
-
小程序中监听页面滚动的几种方法实例
目录 目录 实现效果 下面是Intersection Observer在MDN上的介绍 IntersectionObserver relativeToViewport 接受参数 Object margins observe(string targetSelector, function callback) 参数 Object res 小程序中监听页面的其他方法 page-meta scroll-view 总结 在工作中我们经常遇到需要监听页面中元素位置,当元素超出显示区域或即将显示到页面上,我们
-
java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体
复制代码 代码如下: import java.awt.event.WindowEvent;import java.awt.event.WindowStateListener; import javax.swing.JFrame; public class WinFrame extends JFrame { public WinFrame(){ this.setName("Window 窗口状态"); this.setSize(300,300); this.setDefaultCl
-
vue监听scroll的坑的解决方法
最近开始用vue写个小项目,踩了不少坑,这里记录下爬坑过程,给有同样经历的人帮助. 问题 今天想在vue的项目里面用下拉加载,然后就直接写了: 但是我发现我切换路由以后依旧其他页面也触发了scrollHandler函数,然后我想到使用了vue-router做的spa项目,window对象不变的,所以需要在每次使用后销毁. 解决办法 我回去看了下vue文档的生命周期,看到了destroyed,然后直接在这个周期内销毁就可以了. 使用throttle出现的新问题 下拉加载一般需要配合throttle
-
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
需求 最近公司有个大屏展示项目(如下图) 页面的元素需要做响应式监听,图表需要跟着窗口响应变化 问题 每一个图表都被我写成了一个组件,然后就在每一个组件里写了一串代码,监听浏览器变化 结果只有父组件的代码生效 mounted(){ window.onresize = () => { //当窗口发生改变时触发 // }; } 原因 经简单测试后发现,同一个路由页面只能注册一次浏览器窗口监听事件,第二次注册的会覆盖第一次注册 下边代码即可测试 mounted(){ window.onresize =
-
vue监听dom大小改变案例
需求描述:layout左边菜单栏收缩,右边的content区域的swiper宽度没有改变(没有图,朋友的问题,大体画一下) 类似于点击折叠左边目录会变小,右边内容区域会变大,但是swiper在刚开始的时候就确定了宽度,所以我的想法是监听右边宽度大小去updata一下.但是我用vue的watch监听$refs.swiper.offsetwidth失败了!!!!但是宽度确实是在改变的很费解,先说一下解决方法把 1.使用element-resize-detector var elementResize
-
vue实现监听localstorage值变化
目录 vue监听localstorage值变化 监听localStorage中值的变化实现跨页面通信 部分属性介绍如下 其余属性截图如下 vue监听localstorage值变化 在vue中实现监听localstorage中某个键对应的值的变化 在根目录下创建一个名为utils的文件夹,在文件夹中创建一个tool.js文件 //****将这段内容放在tool.js文件中**** // 重写setItem事件,当使用setItem的时候,触发,window.dispatchEvent派发事件 fu
随机推荐
- System表空间不足的报警问题浅析
- 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
- IOS 开发之swift中手势的实例详解
- java验证码生成的基本流程
- 获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
- Pear DB 新手入门指南教程第1/3页
- 举例讲解Ruby中迭代器Iterator的用法
- web.py中调用文件夹内模板的方法
- SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
- jQuery轮播图效果精简版完整示例
- 基于JQuery实现分隔条的功能
- js用图作提交按钮或超连接
- Android 中HttpURLConnection与HttpClient使用的简单实例
- Android Service自启动注意事项分析
- .NET中的枚举用法浅析
- 7. Microsoft Online-Crash Control, version 6.0(微软在线崩溃控件)
- 模拟OICQ的实现思路和核心程序(三)
- php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
- Android 中对于图片的内存优化方法
- ASP编程入门进阶(十五):组件Counters
