Angular的ViewChild valueChange处理程序在组件被*ngIf隐藏和重新显示后停止触发。
创始人
2024-10-24 11:01:29
0

在Angular中,当使用ngIf指令隐藏和重新显示组件时,ViewChild的valueChange处理程序可能会停止触发。这是因为ngIf指令会从DOM中移除组件,并且重新显示时会重新创建组件。为了解决这个问题,可以使用ngAfterViewInit生命周期钩子来重新订阅valueChange事件。以下是一个示例:

在组件中定义ViewChild和订阅valueChange事件的代码:

import { Component, ViewChild, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';
import { Subscription } from 'rxjs';

@Component({
  selector: 'app-my-component',
  template: `
    
` }) export class MyComponent implements AfterViewInit, OnDestroy { @ViewChild('myInput', { static: false }) myInput: ElementRef; private valueChangeSubscription: Subscription; public showComponent: boolean = true; ngAfterViewInit() { this.valueChangeSubscription = this.myInput.nativeElement.valueChanges.subscribe(() => { this.onValueChange(); }); } ngOnDestroy() { this.valueChangeSubscription.unsubscribe(); } onInputChange() { // Do something when input value changes } onValueChange() { // Do something when valueChange event is triggered } toggleComponent() { this.showComponent = !this.showComponent; } }

在上述示例中,我们使用了ViewChild装饰器来获取对输入元素的引用。然后,在ngAfterViewInit生命周期钩子中,我们订阅了valueChange事件,并在回调函数中调用了onValueChange方法。

另外,我们还实现了OnDestroy生命周期钩子,在组件销毁时取消了valueChange事件的订阅,以避免内存泄漏。

最后,在模板中使用了*ngIf指令来根据showComponent属性的值来显示或隐藏组件。通过调用toggleComponent方法,我们可以切换showComponent属性的值,从而隐藏或重新显示组件。

这样,当组件被隐藏和重新显示时,valueChange事件仍然会触发,并且可以正常处理。

相关内容

热门资讯

据通报!隶属茶苑苹果手机辅助!... 据通报!隶属茶苑苹果手机辅助!切实存在有开挂辅助挂(有挂攻略)-哔哩哔哩1、据通报!隶属茶苑苹果手机...
刚刚!情怀宜春辅助!总是真的是... 刚刚!情怀宜春辅助!总是真的是有开挂辅助挂(有挂透视)-哔哩哔哩1、任何情怀宜春辅助透视是真的假的的...
目前!pokemomo辅助软件... 目前!pokemomo辅助软件!原来真的有开挂辅助器(了解有挂)-哔哩哔哩pokemomo辅助软件破...
这一现象值得深思!填大坑辅助器... 这一现象值得深思!填大坑辅助器视频!本来真的有开挂辅助攻略(讲解有挂)-哔哩哔哩1、很好的工具软件,...
第三方插件!中至小程序破檞!本... 第三方插件!中至小程序破檞!本来真的是有开挂辅助挂(有挂解惑)-哔哩哔哩1、下载好中至小程序破檞正确...
2026版规律!奕乐贵州麻将开... 2026版规律!奕乐贵州麻将开挂版软件!一贯真的是有开挂辅助器(有挂详情)-哔哩哔哩1、全新机制【奕...
此事备受玩家关注!浙江宝宝游戏... 此事备受玩家关注!浙江宝宝游戏辅助工具!切实真的是有开挂辅助神器(有挂功能)-哔哩哔哩1、下载好浙江...
教程辅助挂!越乡有辅助软件!本... 教程辅助挂!越乡有辅助软件!本来是真的有开挂辅助软件(有挂教程)-哔哩哔哩1、进入游戏-大厅左侧-新...
黑科技辅助!欢聚水鱼科技辅助下... 黑科技辅助!欢聚水鱼科技辅助下载!其实真的有开挂辅助神器(有挂详细)-哔哩哔哩欢聚水鱼科技辅助下载破...
现有关情况通报如下!微信开心泉... 现有关情况通报如下!微信开心泉州有技巧吗!一贯真的是有开挂辅助神器(有挂辅助)-哔哩哔哩1.微信开心...