angular2表格,在<;选择>;要素
以下是angular2表格,在<;选择>;要素,angular,typescript,Angular,Typescript,以下是FormBuilder: let valuesArray = fb.array([ fb.group({ name: 'one' }), fb.group({ name: 'two' }), fb.group({ name: 'three' }), fb.group({ name: 'four' }) ]); this.form = fb.group({ values: valuesArray, se
FormBuilder
:
let valuesArray = fb.array([
fb.group({ name: 'one' }),
fb.group({ name: 'two' }),
fb.group({ name: 'three' }),
fb.group({ name: 'four' })
]);
this.form = fb.group({
values: valuesArray,
selectedValue: valuesArray[0]
})
模板:
<select formControlName="selectedValue">
<option *ngFor="let controlGroup of form.controls.values.controls">
{{ controlGroup.controls.name.value }}
</option>
</select>
{{controlGroup.controls.name.value}
这会引发错误
control.registerChange不是一个函数
,它可以通过从
元素中删除formControlName
来修复,但是您如何跟踪列表中的选定项呢?我认为这应该满足您的要求:
<div>{{selectedItem | json}}</div>
<select formControlName="mySelect" [(ngModel)]="selectedItem">
<option *ngFor="let item of items" [(ngValue)]="item">
迭代
form.controls.values.controls
看起来很自然。Kara以模板驱动的形式回答。。。我不想使用模板驱动的表单。谢谢。然后订阅this.form.valueChanges…
而不是[(ngModel)]
当然可以,但不要将香蕉盒与反应式表单一起使用。我宁愿在整个应用程序中使用其中一个。你的意思是[(ngValue)]
。我认为没有办法解决这个问题<代码>不是窗体控件,只有
是。
this.form = fb.group({
mySelect: []
})
items = [
{ name: 'one' },
{ name: 'two' },
{ name: 'three' },
{ name: 'four' }];
selectedItem;
// or
selectedItem = items[0];