【发布时间】:2020-05-26 15:49:48
【问题描述】:
我有这个代码:
<ion-item *ngFor="let product of products">
<ion-label>
{{ product }}
</ion-label>
</ion-item>
<ng-container *ngSwitchCase="states.Product">
<product-details></product-details>
</ng-container>
我想将父组件的 *ngFor 中的 product 值传递给 product-details 子组件。我应该使用输入还是服务?请举个例子。
【问题讨论】:
-
为此使用输入。当您需要保持多个组件的状态时,服务更有用,尤其是当它们彼此不相关时。这是直接关系,使用 Input() 是有意义的
-
@Sam 请用我写的动态数据举例。
-
这里有一些例子,angular.io/guide/…。这是一本了解孩子/父母如何相互交谈的好书。
-
在您的代码中,product-details 选择器超出了 *ngFor 的范围(它被 ion-item 选择器关闭)。你确定这是预期的行为吗?如果不是请修改代码。
-
如果它是可点击的,则将'product'变量发送到事件处理程序,然后它可以用作局部变量。例如,在离子标签选择器中,执行 (mouseup)="mouseUp(product)";然后将其存储在可以在产品详细信息选择器中使用的局部变量中。但是,我确实想知道您是否愿意在 ng-container 中过滤产品,然后可以通过采用以下答案之一来绕过此卷积。
标签: angular input angular7 ionic4 ngfor