在 Angular 中,我可以将组件的发射输出直接绑定到 属性 吗?

In Angular, can I bind the emited output of a component directly to a property?

我的主要应用程序组件通过子组件上的 @Output 修饰属性与子组件交互。输出属性使用和 EventEmitter<>()。 属性 通常会发出一个简单的布尔值或数字。我想将此输出直接绑定到主应用程序中的属性。但是我没有这样做。

我现在正在做的是:

//In my sub component:
@Output() subProperty = new EventEmitter<boolean>();

//In my main template:
<sub-component (subProperty)="setPropertyValue($event)"></subcomponent>

//In my main component (this I would like to avoid):
setPropertyValue(event) {
    this.mainProperty = event;
}

我想做的是避免我的主要组件中的功能并直接绑定到我的 属性,但是下面的代码不起作用:

//In my sub component:
@Output() subProperty = new EventEmitter<boolean>();

//In my main template:
<sub-component (subProperty)="mainProperty"></subcomponent>

有什么方法可以避免我的主要组件中的附加功能?

我相信你能做的最好的是:

(subProperty)="mainProperty = $event"

将后缀 Change 添加到 属性 的末尾,这样您就可以在方框语法中使用 banana/football。匹配的输入不是必需的,将被忽略。

//In your sub component:
@Output() subPropertyChange = new EventEmitter<boolean>();
//In your main template:
<sub-component [(subProperty)]="mainProperty"></subcomponent>