我有一个带有输入属性的自定义组件,如下所示:
export class MyComponent{
@Input() value:number;
}
这样我就可以在父组件上放一个:
<my-component [(value)]="someValueAtParentComponent"></my-component>
请注意,我没有提供 @Component 装饰器和父组件的类,因为我认为它们不相关。
现在,在 MyComponent 内部发生的事情可以改变value
.
在 MyComponent 的模板中,我显示{{value}}
,它在其整个生命周期中显示正确的值。
从父组件的模板中,我显示{{someValueAtParentComponent}}
,但它没有更新 MyComponent 的值。我认为 [(value)] 会自动完成这项工作,但我想不会。
我不想@Output
在 MyComponent 上为父组件创建一个事件来处理它将someValueAtParentComponent
显式设置的事件。
我相信 Angular 想要为父组件发出一个事件来处理,但这似乎很乏味。我们可以在自己的组件中做些什么,以便我们可以使用语法糖[(value)]
而不是[value]="..." (onValueChanged)="onValueChangedHandler($event)"
?