1
子コンポーネントのEvent Emitterに問題があります。Angular2 - 親コンポーネントへのタイムアウト機能によるEventEmitterの変数
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();
}
}
は正常であり、私は、テンプレートを経由して渡されたメソッドを持っています。
エミッタはタイムアウト機能なしで動作しています。私はそれをタイムアウトに実装するのを手伝ってください!
よろしくお願いします。 ボスパー!
@Ulandの改善点やコメントとして、あなたのngOnDestroy内のタイムアウトをクリーンアップしてください。 –
@camaron私はタイムアウトのクリアが重要ではないと思うので、 'collapseAlert'関数が呼び出され、' setTimeout'は一度だけ呼び出され、その後呼び出されることはありません。それが 'setInterval'なら、OPは' ngOnDestroy'ライフサイクルイベントでそれをクリアする必要があります。 –