Angular 2如何让setter等待输入setter来完成
发布时间:2020-12-17 17:32:21 所属栏目:安全 来源:网络整理
导读:嗨,我有一个问题.在我的组件中,我有一个像这样的输入设置器: @Input() set editStatus(status: boolean) { this.savedEditStatus = status; if (this.savedEditStatus === true this.getTrigg === true) { this.getDataFromFlex("SHOWS_L").then((data: any
嗨,我有一个问题.在我的组件中,我有一个像这样的输入设置器:
@Input() set editStatus(status: boolean) { this.savedEditStatus = status; if (this.savedEditStatus === true && this.getTrigg === true) { this.getDataFromFlex("SHOWS_L").then((data: any) => { this.getTrigg = false; this.lengthDataOptions = data; }) } else { this.getTrigg = true; this.lengthDataOptions = undefined; } }; 我的问题是我得到两个编辑状态,值为true,他们几乎同时出现.因此,在这种情况下,对于此组件,getDataFromFlex函数将被调用两次.我不想第二次调用所以我认为getTrigg(boolean)将是一个解决方案.它不起作用.所以我需要你们的帮助. 解决方法
我建议您使用
ngOnChanges接口与外部组件进行这种通信.这将确保您具有在此值更改后执行所需操作的预期值:
import { Component,OnInit,Input,OnChanges,SimpleChange } from '@angular/core'; @Input() savedEditStatus: boolean; // change to field not getter / setter ngOnChanges(changes: { [propKey: string]: SimpleChange }) { if (changes['savedEditStatus'] && changes['savedEditStatus'].currentValue === true && this.getTrigg === true) { this.getDataFromFlex("SHOWS_L").then((data: any) => { this.getTrigg = false; this.lengthDataOptions = data; }) } else { this.getTrigg = true; this.lengthDataOptions = undefined; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读