Angular QueryList的observable属性不受子属性触发。
创始人
2024-10-20 12:30:10
0

在 Angular 中,可以使用 QueryList 类型的 changes 属性来监听子组件的变化。但是,changes 属性只会在 QueryList 本身的一些改变上触发,而不会在子属性的改变上触发。

如果想要监听子属性的改变,可以使用 Observablepipe 方法结合 map 操作符来实现。以下是一个示例代码:

import { Component, QueryList, ViewChildren, ElementRef, AfterViewInit } from '@angular/core';
import { Observable, fromEvent } from 'rxjs';
import { map } from 'rxjs/operators';

@Component({
  selector: 'app-example',
  template: `
    
{{ item }}
` }) export class ExampleComponent implements AfterViewInit { @ViewChildren('itemRef') itemRefs: QueryList; ngAfterViewInit() { this.itemRefs.changes.pipe( map((queryList: QueryList) => queryList.toArray()) ).subscribe((elements: ElementRef[]) => { elements.forEach((element: ElementRef) => { // 在这里可以监听子属性的改变 const observable: Observable = fromEvent(element.nativeElement, 'click'); observable.subscribe(() => { console.log('子属性被点击了'); }); }); }); } }

在上述代码中,通过 @ViewChildren 装饰器和 QueryList 类型的 itemRefs 属性来获取子组件的引用。在 ngAfterViewInit 生命周期钩子中,我们订阅了 itemRefschanges 属性,并使用 map 操作符转换成一个数组。然后,我们遍历该数组,并为每个元素绑定了一个 click 事件的监听器。

这样,当子属性改变时,我们就可以监听到相应的事件,并执行相应的操作。

相关内容

热门资讯

透视模板!wpk辅助器,wpk... 透视模板!wpk辅助器,wpk俱乐部是做什么的(透视)总是真的是有透视插件(哔哩哔哩)1、下载好wp...
透视大纲!hhpoker怎么开... 透视大纲!hhpoker怎么开透视,hhpoker智能辅助插件(透视)其实真的有脚本app(哔哩哔哩...
透视妙计!德州透视是真的吗,w... 透视妙计!德州透视是真的吗,we poker免费辅助器(透视)竟然有脚本神器(哔哩哔哩)1、游戏颠覆...
透视诀窍!aapoker脚本怎... 透视诀窍!aapoker脚本怎么用,aapoker公共底牌(透视)一贯是真的透视方法(哔哩哔哩)aa...
透视操作!pokemmo修改器... 透视操作!pokemmo修改器手机版,约局吧透视挂下载(透视)原来存在有透视app(哔哩哔哩);1、...
透视法门!hhpkoer辅助器... 透视法门!hhpkoer辅助器,hhpoker一直输有挂吗(透视)总是是有脚本教程(哔哩哔哩)透视法...
透视烘培!wpk安卓下载辅助,... 透视烘培!wpk安卓下载辅助,wpk软件是真的吗(透视)都是真的是有透视软件(哔哩哔哩)进入游戏-大...
透视阶段!wepoker透视功... 透视阶段!wepoker透视功能下载,wpk安卓下载辅助(透视)确实是真的挂(哔哩哔哩)该软件可以轻...
透视教材!wepoker开脚本... 透视教材!wepoker开脚本视频,wepoker有没有机器人(透视)竟然有透视教程(哔哩哔哩)1、...
透视手册!约局吧如何查看是否有... 透视手册!约局吧如何查看是否有挂,哈糖大菠萝有挂吗5个常用方法(透视)确实存在有挂(哔哩哔哩)1、在...