Angular 2应用程序中组件的“输入”属性的原因是什么?

时间:2016-02-11 18:41:27

标签: angular

来自文档,

'输入声明确保我们的指令的使用者只能绑定到我们的公共API的属性......没有别的。'

https://angular.io/docs/ts/latest/guide/attribute-directives.html#!#why-input

这不是很清楚。我不确定为什么我们需要定义它。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

@Input() someInput;(或@Component({inputs: ['someInput']}))在您可以绑定的自定义元素上创建一个属性,如

<my-component [someInput]="someField"></my-component>

如果没有@Input(),则不允许绑定,并且在加载Angular应用程序时会收到错误消息。

此声明式方法还有其他原因:

  • 它应该允许工具获取有关组件的元信息
    • 用于语法检查
    • 自动完成
  • Angular2使用此元信息生成挂钩绑定的代码
    • 例如,当对输入的绑定发生更改时,将调用ngOnChanges()