首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用formControlName和处理嵌套formGroup?

如何使用formControlName和处理嵌套formGroup?
EN

Stack Overflow用户
提问于 2017-06-12 12:24:20
回答 4查看 98.6K关注 0票数 81

正如角文档所说的那样,我们可以在表单中使用formControlName

代码语言:javascript
运行
复制
<h2>Hero Detail</h2>
<h3><i>FormControl in a FormGroup</i></h3>
<form [formGroup]="heroForm" novalidate>
    <div class="form-group">
        <label class="center-block">Name:
            <input class="form-control" formControlName="name">
        </label>
    </div>
</form>

就像他们说的..。

在没有父FormGroup的情况下,formControl=的“名称”更早地起作用了,因为该指令可以独立运行,也就是说,它不存在于FormGroup中。对于父FormGroup,名称输入需要语法formControlName=name才能与类中正确的FormControl关联。这个语法告诉角查找父FormGroup,在本例中是heroForm,然后在该组中查找名为FormControl的FormControl。

无论如何,几个月前,我要求找出formControlName[formControl]之间的区别。

现在我的问题是:如何在嵌套的formControlName中使用FormGroups?

例如,如果我有以下表单结构:

代码语言:javascript
运行
复制
this.myForm = fb.group({
    'fullname': ['', Validators.required],
    'gender': [],
    'address': fb.group({
        'street': [''],
        'houseNumber': [''],
        'postalCode': ['']
    })
});

使用houseNumber将"street“(或"postalCode")绑定到相关的formControlName元素的正确方法是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2017-09-25 15:01:03

您可以使用表单组,它基本上是控件的集合(控件是指在html表单中给出的字段),定义在类型记录语法中,并使用formControlName指令绑定到HTML元素。

代码语言:javascript
运行
复制
this.myForm = fb.group({
    'fullname': ['', Validators.required],
    'gender': [],
    'address': fb.group({
        'street': [''],
        'houseNumber': [''],
        'postalCode': ['']
    })
});

模板:

代码语言:javascript
运行
复制
<form [formGroup]="myForm" >
   <div class="form-group">
      <label for="fullname">Username</label>
      <input type="text" id="username" formControlName="fullname" class="form-control">            
   </div>
   <div class="radio" *ngFor="let gender of genders">
      <label>
      <input type="radio" formControlName="gender" [value]="gender">{{ gender }} </label>
   </div>
   <div formGroupName="address">
      <div class="form-group">
         <label for="street">Username</label>
         <input type="text" id="username" value="street" formControlName="street" class="form-control">            
      </div>
      <div class="form-group">
         <label for="houseNumber">Username</label>
         <input type="text" id="username" value="street" formControlName="houseNumber" class="form-control">            
      </div>
      <div class="form-group">
         <label for="postalCode">Username</label>
         <input type="text" id="username" value="street" formControlName="postalCode" class="form-control">            
      </div>
   </div>
</form>

formGroup可以由嵌套的formGroup和层次结构组成,但是在访问它的值时,它相当简单。

票数 137
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44499425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档