【发布时间】:2020-05-19 14:26:30
【问题描述】:
在 Angular(5) 中,我正在尝试为模板驱动的表单编写一组可重用的表单控件。它需要能够从父组件中获取模型并将其传递给元素以进行双向数据绑定。
这就是我所拥有的。
admin-panel.component.ts(父表单)
import { Component, OnInit } from '@angular/core';
import{ NgForm } from '@angular/forms';
@Component({
selector: 'admin-panel',
template: `
<label>Settings</label>
<!-- the below doesn't work, but is an example of how I'd like to use it -->
<settings name="settings" [(ngModel)]="preset.settings"></settings>
`
})
export class AdminPanelComponent implements OnInit
{
preset;
ngOnInit()
{
this.preset = {
name: '',
settings: {
settingOne: 'foo',
settingTwo: false,
settingThree: 14
}
}
}
settings.component.html
对于下面的 ngModels,我也尝试将其设置为 model.settingOne,model.settingTwo,但这也不起作用。
<div [ngModelGroup]="group">
<select name="settingOne" [(ngModel)]="model.settingOne">
<option value="foo">Foo</option>
<option value="bar">Bar</option>
</select>
<input type="checkbox" name="settingTwo" [(ngModel)]="model.settingTwo">
</div>
settings.component.ts
import { Component, Input } from '@angular/core';
import { ControlContainer, NgForm } from '@angular/forms';
@Component({
selector: 'settings',
templateUrl: './settings.component.html',
viewProviders:[{provide: ControlContainer, useExisting: NgForm}]
})
export class SettingsComponent
{
@Input('name') group: string;
//@Input('model') model;
}
【问题讨论】:
标签: javascript angular