- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
例如,模板中有一个元素使用局部变量#targetElement
,目的是在需要时获取其当前宽度。但我不想以编程方式计算样式。尝试使用带有 @ViewChild 注释的 setter
get: 从模板中获取样式
set:给组件设置值
@ViewChild('targetElement')
set imgWidth(content: ElementRef) {
if (content) {
console.log('Current width is: ' + content.nativeElement.clientWidth);
}
}
但它只能得到一个 0,并且在调整页面大小时或对窗口进行任何更改时都不会更新。那么,问题是我如何随时被动地将 #targetElement
设置到我的组件中?
在 ngDoCheck
或 ngAfterViewChecked
中编写一个 setter 似乎会降低性能。
最佳答案
你可以使用resizeObserver
Resize Observer 是一个新的 JavaScript API,它与其他观察者 API(如 Intersection Observer API)非常相似。它允许在元素大小发生变化时通知元素。
安装可用于浏览器回到 Internet Explorer 11 的 polyfill
npm i resize-observer-polyfill
var observer = new ResizeObserver( resizeObserverEntries => {
for (let entry of resizeObserverEntries) {
const rect = entry.contentRect;
console.log('Element:', entry.target);
console.log(`Element size: ${rect.width}px x ${rect.height}px`);
console.log(`Element padding: ${rect.top}px ; ${rect.left}px`);
}
});
StackBlitz:https://stackblitz.com/edit/resize-observer
ResizeObserver:就像元素的 document.onresize文档:https://developers.google.com/web/updates/2016/10/resizeobserver检查这个:https://www.sitepen.com/blog/2018/06/04/exploring-the-resize-observer-proposal/
关于javascript - 是否有任何 'passive' 方法可以在 Angular2 中动态地从 @ViewChild 样式获取元素样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51861558/
我有以下 CDI 托管 bean: @Named @SessionScoped public class InfoPageController implements Serializable {
我正在使用 dragula js 在移动设备中使用拖放功能,突然遇到了一个问题,出现以下错误。 [Intervention] Unable to preventDefault inside passi
我正在使用 Google Page Speed Insights优化我的页面速度。它告诉我不要使用被动监听器来提高滚动性能。我知道如何使用 Vanilla javascript 来做到这一点。 win
我们使用独立的集群 JMS 服务器托管集群应用程序服务器。应用程序服务器是主动/主动且负载平衡的,而JMS服务器是主动/被动(共享存储)并使用操作系统集群。这意味着从客户端的角度来看,每个端点只有一个
我正在使用锤子进行拖动,加载其他东西时它变得不稳定,正如这条警告消息告诉我的那样。 Handling of 'touchstart' input event was delayed for X ms
我正在使用锤子进行拖动,并且在加载其他内容时它变得不稳定,正如此警告消息所告诉我的那样。 Handling of 'touchstart' input event was delayed for X
因为有两个关于被动和主动 FTP 模式的问题 Passive FTP instead of Active FTP What is the difference between active and p
我发现自己经常创建一个没有公共(public)方法且自包含的对象。它通常处理在其私有(private)方法中传递给其构造函数的参数事件,并且不会引发任何事件或公开任何公共(public)方法。 我称这
引用此 post我已经成功地获得了一个 Linux 设备(Raspberry Pi Model A+)来将我的蓝牙 4.0 USB 加密狗切换到“广告”状态: sudo hciconfig hci0
我们制定了每晚将文件上传到合作伙伴 FTP 站点的流程。他们现在需要被动连接,我们的上传现在失败了。 .NET 4 FtpWebRequest 是否可以实现被动连接而不是主动连接?如果是这样,有人可以
我使用 Chrome 扩展来修改缩放增量,它在控制台中抛出此错误: Added non-passive event listener to a scroll-blocking 'mousewheel'
随着 Chrome 的最新更新[73],他们改变了被动事件监听器与鼠标滚轮在窗口对象上的工作方式。基本上,这已经破坏了许多平滑滚动插件,这些插件在 Chrome 中滚动时消除了传统鼠标滚轮的默认“抖动
我正在 Ubuntu 中使用套接字编程 C++ 编写服务器客户端程序。 这是连接客户端和服务器的代码。 void setParent(string name,int parentPort){
我正在使用 Owin WsFederation 身份验证。对于未经授权的用户,我希望一条路径重定向到 STS,另一条路径返回 401 响应。是否可以为不同的路径设置不同的AuthenticationM
似乎 Microsoft ADFSv2 支持 WS-Trust 和 SAML Passive,但它所构建的 WIF 堆栈不支持 SAML。 WS-Trust 和 SAML-P 有什么区别?它们是否具有
“Presenter First”MVP 模式与“Passive View”一样吗?如果不是,它们有什么不同? 最佳答案 也许我错了,但据我所知: 演示者优先方法中使用的 mvp 模式是围绕 Mart
我正在尝试使用在 Android 模拟器中运行的 Java FTPSClient 从本地 FileZilla 服务器下载文件。 我编写了这个帮助程序代码来下载一个文件: public boolean
我正在尝试使用在 Android 模拟器中运行的 Java FTPSClient 从本地 FileZilla 服务器下载文件。 我写了这个帮助代码来下载一个文件: public boolean dow
我无法解决我在客户站点遇到的这个问题。客户端有两个站点,并且都运行相同版本的我的应用程序。在一个站点上没有问题,但在另一个站点上,当我尝试从 FTP 站点下载文件时,我开始不断收到以下错误: "227
例如,模板中有一个元素使用局部变量#targetElement,目的是在需要时获取其当前宽度。但我不想以编程方式计算样式。尝试使用带有 @ViewChild 注释的 setter get: 从模板中获
我是一名优秀的程序员,十分优秀!