gpt4 book ai didi

javascript - Angular2 - 通过超时函数将带有 EventEmitter 的变量传递给父组件

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:33 24 4
gpt4 key购买 nike

我对子组件中的事件发射器有疑问。

我想将带有 EventEmitter 的变量传递给父组件,但要使用超时功能。现在它看起来像这样:

child :

export class AlertSuccess implements OnChanges {

@Input() success: SuccessCRM;
@Output() emitCollapse:EventEmitter<any> = new EventEmitter();

private info_ico: string = require('../../public/images/iconInfoTip.png');
public state: boolean = false;

constructor() {}

collapseAlert () {
let alert = document.getElementById('success');
setTimeout(function() {
console.log("BEFORE EMITTED STATE!!!!!: ", this.state );
console.log(this.emitCollapse);
this.emitCollapse.emit(this.state);
}, 500);
}

ngOnChanges(changes: SimpleChanges):void {
console.log("CHANGES: ", this.success);
this.collapseAlert();
}
}

在父级中一切正常,我有通过模板传递的方法。

发射器在没有超时功能的情况下工作。请帮我执行到超时!

问候加油!

最佳答案

使用箭头函数指向正确的this

setTimeout(() => {
console.log("BEFORE EMITTED STATE!!!!!: ", this.state );
console.log(this.emitCollapse);
this.emitCollapse.emit(this.state);
}, 500);

关于javascript - Angular2 - 通过超时函数将带有 EventEmitter 的变量传递给父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41807820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com