【发布时间】:2017-07-16 05:39:11
【问题描述】:
我有这个组件通过它的选择器接收两个输入,但这可以扩展到任意数量的输入和任何组件。因此,为了在组件本身中使用多个属性,单个 @Input() 装饰器不允许我使用多个属性,因此作为一种解决方法,我为两个输入属性使用了两个装饰器,但我认为这不是唯一的解决这种情况的方法。
export class AsyncComponent {
@Input() waitFor: boolean;
@Input() message: string; // TODO: Verify if multiple inputs are needed for multiple props
}
更新
<app-async [waitFor]="true" message="foo"><app-async>
那么,是否可以通过任何其他方式仅对任意数量的输入道具使用单个装饰器?如果除了waitFor 和message 之外还有更多的道具,我是否必须为每个道具执行以下操作。
@Input() waitFor: boolean;
@Input() message: string;
@Input() someOtherProp: string;
....
或者有没有其他方法可以只拥有一个 Input 装饰器并使用任意数量的属性?
【问题讨论】:
-
为什么要单输入,单输入是针对单值的。
-
@RomanC,假设我将 10 个道具传递给组件,这是否意味着我必须在组件本身中将装饰器包装 10 次?
-
包装装饰器 10 次?不,这样不行。
标签: angular typescript angular-components angular-decorator