gpt4 book ai didi

angular - 如何将子组件的更改通知父级?

转载 作者:太空狗 更新时间:2023-10-29 17:22:33 26 4
gpt4 key购买 nike

我有一个带有此模板的子组件:

<p *ngIf="user != null" >
Id: {{user.id}}<br>
Name: {{user.firstName}} {{user.lastName}}<br>
Nick: {{user.nickname}}<br>
Gender: {{user.gender}}<br>
Birthday: {{user.birthday}}<br>
Last login: {{user.lastUpdateDate}}<br>
Registered: {{user.registrationDate}}<br>
</p>

我使用 http 请求从服务器获取用户,因此在加载数据时显示用户。

如何通知父组件数据已加载和显示?

最佳答案

只需在子组件中使用 EventEmitter(此示例使用点击事件,您可以随时发出该事件)。

@Component({
selector: 'child-component',
template: `
<button (click)="changeState(State.FINISHED)">Finish</button>
`
})
export class ChildComponent {
@Output() stateChanged = new EventEmitter<State>();

changeState(state: State) {
this.stateChanged.emit(state);
...
}
}

@Component({
selector: 'parent-component',
template: `
<child-component
(stateChanged)="onStateChange($event)">
</child-component>
`
})
export class ParentComponent {
onStateChange(state: State) {
...
}
}

当您单击 Finish 按钮时,它会调用 changeState 方法,其中会发出 stateChange 事件。可以像在父组件的模板中看到的那样收听它。这将调用 onStateChange 方法,您可以根据需要对事件使用react。

Component Interaction文章 Angular.io docs了解更多信息

关于angular - 如何将子组件的更改通知父级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516500/

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