【发布时间】:2020-01-01 17:51:38
【问题描述】:
我正在阅读有关 Angular ViewChild 并与输入/输出参数进行比较的信息。只是好奇 Viewchild 是否有任何缺点,或者无法做 Input/Output 可以做的事情?
看来 ViewChild 是首选路线,因为所有参数现在都位于 Typescript 中。这似乎比混合/混淆到 html 标记中更好。业务/数据逻辑参数现在可以放在一个地方。
查看孩子
@ViewChild(AddressTypeDropdownComponent, { static: false }) child: AddressTypeDropdownComponent;
ngAfterViewInit() {
// Subscribe to the child component event
this.child.addressTypeChange.subscribe(value => {
console.log(value);
});
}
someMethod() {
// Set the input values of the child component
this.child.addressTypeDefaultItem = someValue1;
this.child.selectedAddressType = someValue2;
}
输入/输出
<app-address-type-dropdown
(addressTypeChange)="addressTypeChangeEvent($event)"
[addressTypeDefaultItem]="someValue1"
[selectedAddressType]="someValue2">
</app-address-type-dropdown>
【问题讨论】:
-
如果您使用
@Input()和@Output(),那么对于演示组件来说完全没问题。只要数据来自智能组件,您就可以在任何地方使用此演示文稿而无需担心。因此,例如...如果您将数据传递给表示组件,那么它将显示它,或者如果您没有传递任何值,它将根本不显示任何内容。当您可以将相同的组件用于add和edit操作时,此场景非常有用。 -
不知道为什么这个问题被否决,似乎是一个合理的问题
标签: angular typescript angular8