如何在angular中将输入值绑定到formcontrol?

如何在angular中将输入值绑定到formcontrol?,angular,Angular,我有一个嵌套的表单控件(默认情况下有两个输入框,但可以添加更多),这些值是从一个值数组(循环)中设置的。这些值无法绑定到表单控件 请看下面我的代码 <div formArrayName="dayanddescriptions"> <div class="panel panel-default" *ngFor="let dayAndDescription of this.createFormService.formGroup.controls.dayanddescrip

我有一个嵌套的表单控件(默认情况下有两个输入框,但可以添加更多),这些值是从一个值数组(循环)中设置的。这些值无法绑定到表单控件

请看下面我的代码

<div formArrayName="dayanddescriptions">
    <div class="panel panel-default" *ngFor="let dayAndDescription of this.createFormService.formGroup.controls.dayanddescriptions.controls; let i = index" >
        <div class="panel-heading">
            <span>Day {{i + 1}}</span>
            <span class="glyphicon glyphicon-remove pull-right" *ngIf="i>0"  
                  (click)="removeDayandDescription(i)">                    
            </span>
        </div>          
        <div class="panel-body" [formGroupName]="i">
            <!--Day-->
            <div class="form-group col-xs-4" >
                <label for="text">Day</label>
                <input  type="text" class="form-control" formControlName="day"  value="{{i + 1}}" readonly>                    
            </div>
            <!--Description-->
            <div class="form-group col-xs-4">
                <label>Description</label>
                <input  type="text" class="form-control" formControlName="description">
            </div>                           
        </div>
    </div>
</div>
这是它的组成部分,

initDayandDescription() {       
        return this.createFormService._formBuilder.group({
            day: ['', Validators.required],
            description: [''],
        });
    }     
    createForm() {
        this.formService.buildForm(this.createFormService._formBuilder.group({
            title: [null, Validators.compose([Validators.required, Validators.minLength(20), Validators.maxLength(64)])],
            metaDescription: '',
            singleImageUploadsImageName: '',
            multipleImageUploadsImageName: '',
            unDevelopmentGoals: '',
            mainEditor: '',
            introduction: [null, Validators.compose([Validators.required, Validators.minLength(50), Validators.maxLength(124)])],
            experiencecategory: '',
            dayanddescriptions: this.createFormService._formBuilder.array([
                this.initDayandDescription(),
            ]),           
            hashtags: '',           
        }));
    } 

我们只需要对代码做一个小小的更改!:)

与其使用
[value]
,不如使用单向绑定,因此只需将
[value]
替换为
[ngModel]

<input  type="text" class="form-control" formControlName="day" 
     [ngModel]="i + 1"  readonly>


您的分叉

是否有要插入的默认值?问题有点不清楚,最好是创建一个plunker:)当您在任何输入框中键入时,这些值会立即反映在表单值中。对于其中一个输入框,指定的值如下所示。。此值会反映在文本框中,但不会反映在表单值中当您在任何输入框中键入时,这些值会立即反映在表单值中。好的,那么当您键入值时,您希望它做什么?但是它没有反映在这里形式:{“title”:null,“metaDescription”:“,“singleImageUploadsImageName”:“}好的,现在我明白了:)您可以添加您在组件中构建表单的方式吗?谢谢。我正在尝试。不客气,抱歉花了一段时间,我只是很难理解到底发生了什么。看到所有的代码就把它清除了。祝你有美好的一天和快乐的编码!:)今天很好,也很高兴为您编码:)现在已弃用
<input  type="text" class="form-control" formControlName="day" 
     [ngModel]="i + 1"  readonly>