[摘自Victor Savkin在Angular2 template syntax上的帖子,显示了如何使用输入和输出属性绑定-
<todo-cmp [model]="todo" (complete)="onCompletingTodo(todo)"></todo-cmp>
@Component({selector: 'todo-cmp'})
class TodoCmp {
@Input() model;
@Output() complete = new EventEmitter(); // TypeScript supports initializing fields
}
输入属性用@Input()装饰,而输出属性用@Output()装饰。我应该如何声明一个将具有双向属性绑定的属性?示例:假设rootpanel组件具有“ suggestions”属性(类型为字符串),而searchPanel具有“ getSuggestions”属性。现在,我希望这两个属性可以通过两种方式相互绑定。我试过-
rootpanel.html:
<search-panel [(getSuggestions)]="suggestions"> </search-panel>
但是我在searchPanel组件中声明getSuggestions属性时遇到了麻烦。另外,getSuggestions属性的类型应该是什么-string or EventEmitter<string>
?
请提出建议。
如果要从父组件进行双向模型绑定:
如果要使用[(getSuggestions)]
样式进行双向绑定,请声明类似字段
推荐的方法pixelbits正是您应该采取的方法,但是如果您在一个组件上具有多个双向数据绑定属性,或者甚至在您的代码库中经常更改一个双向数据绑定属性,我都会为此创建一个装饰器。如果您正在使用npm here。如果需要代码,请转到gihub页面。