【问题标题】:Understanding the declaration of formGroup in angular 4 forms理解 Angular 4 形式的 formGroup 的声明
【发布时间】:2017-11-13 19:53:42
【问题描述】:

我是 Angular 新手,在文档中我了解到要将数据从父级传递给子级,我们使用这样的输入装饰

export class demo {
  @input()
  someInput: any;
}

我们像这样将数据从父级传递给子级

<div *ngFor='let data of moreData'>
<child-component [someData]='data'></child-component>
</div>

现在我的问题是,当我们在反应式表单方法中使用 formGroup 时,我们使用

[formGroup]='form'

但是为什么持有表单的组件不需要@input()formGroup:FormGroup 标签,我是否遗漏了什么,如果有,请告诉我

【问题讨论】:

  • 第一个示例的父组件中也没有必要。

标签: angular angular-reactive-forms


【解决方案1】:

您没有在保存表单的组件上添加[formGroup]。您将其添加到 &lt;form&gt; 元素上。所以它不能是你组件的输入。

formGroup 属性是FormGroupDirective 的选择器。而且这个指令有一个input named formGroup

因此,通过将 formGroup 属性添加到元素,您触发了 FormGroupDirective 的实例化,并且通过将 FormGroup 类型的值作为该属性的值传递,您将表单组传递到该指令的输入。

【讨论】:

  • #1 指令的名称和输入如何相同 #2 仅提及指令的属性如何可以实例化指令您能否提供一些链接以帮助我理解这一点,谢谢你的帮助
  • #1 因为在框架中没有什么可以阻止它(它实际上是一个期望的功能,能够触发指令并使用单个属性传递信息); #2 它不是指令的属性。它是指令的 CSS 选择器。 foo 表示元素 &lt;foo&gt;[foo] 表示属性foo.foo 表示类foo。您一直在使用这样的指令:ngStyle、ngClass、ngModel、formGroup、formControlName 等。
  • 非常感谢,您的回答对我很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 2017-11-12
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多