gpt4 book ai didi

Angular 2 : Form containing child component

转载 作者:太空狗 更新时间:2023-10-29 16:50:07 24 4
gpt4 key购买 nike

我有一个组件,它有一个表单和表单中的一些子组件。子组件是使用 *ngFor 创建的,每个子组件都包含 input 元素。 Angular2 编译器给出类似 [formGroup] 未定义的错误。

这个实现是否正确?

父组件:

<section class="data-body">
<form [formGroup]="checkoutForm" novalidate>
<app-checkout-product-view *ngFor="let item of checkoutData.products" [_product]="item" formGroupName="products"></app-checkout-product-view>
<div class="col-md-4">
<label>Nominee:</label>
<select required [(ngModel)]="checkoutData.selectedNominee" [ngModelOptions]="{standalone: true}">
<option *ngFor="let nominee of checkoutData.nomineeList" [value]="nominee">{{nominee}}</option>
</select>
</div>
<div class="col-md-4">
<label>Bank Account:</label>
<select [(ngModel)]="checkoutData.selectedBank" required [ngModelOptions]="{standalone: true}">
<option *ngFor="let bank of checkoutData.bankList" [value]="bank">{{bank}}</option>
</select>
</div>
</div>
</form>
</section>

子组件:app-checkout-product-view

<div class="row">
<div class="col-md-4">
<md-input required [(ngModel)]="product.investmentAmount
formControlName="investmentAmount">
<span md-prefix>&#x20B9;</span><!--Rupee icon-->
</md-input>
</div>
</div>

附言: 所有导入都很好,所以我很确定这里没有导入错误

最佳答案

此行为是预期的。在嵌套组件中时,Angular 表单不会自动注册。但是,您可以通过向子组件提供外部 FormGroup 来解决此问题。在子组件内部将模板包装在同一个组中。这可能是这样的:

/外部组件代码 - 它包含表单/

@Component({
selector: 'my-app',
template: `
<form [formGroup]="reactiveFormGroup">
<input formControlName="foo" />
<my-comp **[group]="reactiveFormGroup"**></my-comp>
</form>

form value: {{ reactiveFormGroup.value | json }}
`
})
export class AppComponent {
reactiveFormGroup = new FormGroup({
foo: new FormControl('default foo'),
bar: new FormControl('default bar')
});
}

/子组件代码,即my-comp/

@Component({
selector: 'my-comp',
template: `
<div [formGroup]="group">
<input [formControlName]="'bar'" />
</div>
`
})
export class MyComponent {
@Input() group: FormGroup;
}

关于 Angular 2 : Form containing child component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com