我正在尝试将值绑定到子组件。该值来自对象的属性。但是对于我的工作,属性名称是一个变量,我正在寻找一种解决方案来绑定类似的东西
[childInput]="ParentObject['{{PropertyKey}}']"
甚至这个
[childInput]="{{getValue(propertyKey)}}"
and in parentcomponent,
getValue(propertyName:string): any {
return this.ParentObject[propertyName];
}
-------------------------------------------------- -----------------------------------------
以下是我正在尝试做的简要说明。
我的目标是有一个框架,当我传递一个对象(带有数据)和表单项的集合(映射到对象)将显示表单(查看/编辑)
我正在使用动态表单中的指南,并且能够根据构成表单的项目集合显示空表单。我坚持显示填写的表格(详细信息)。
例如表单项的集合
AddressForm [] = new TextboxItem(
{
key: 'address1',
label: 'Address Line1',
required: true
}
),
new TextboxItem(
{
key: 'address2',
label: 'Address Line 2'
}
),
new TextboxItem(
{
key: 'city',
label: 'City',
required: true
}
),
new TextboxItem(
{
key: 'state',
label: 'State',
required: true
}
),
new TextboxItem(
{
key: 'zip',
label: 'Zip',
value: '',
required: true
})];
要查看/编辑的数据
SampleData[] =
[{address1:"10 main st", address2:"", city:"New York", state:"New York", zip:"11017" },
{address1:"20 Kirk ave", address2:"", city:"Albany", state:"New York", zip:"11700"},
{address1:"1st ave", address2:"", city:"Queens", state:"New York", zip:"11145"}];
sampleData 中的propertyName 是TextBoxItem 中“key”的值。
现在,当我从 sampleData 绑定第一个项目时,我希望每个属性都绑定到表单定义的相应项目应该在 html 控件中显示数据。
所以我正在寻找一种解决方案,比如将 SampleData 中的选定项目绑定到表单
详细组件的模板:
<TheForm [formObject]="theSelected"></TheForm>
而 Form 又应该将每个属性绑定到 formItem。这是我被卡住的部分。我的想法是从 formObject 中获取属性值,例如formObject['{{item.key}}']需要您的帮助。
表单组件模板的一部分:
<div *ngFor="let item of formItems">
<Item [item]="item" [itemValue]="formObject['{{item.key}}']"></Item>
</div>
以及Item Component模板的一部分:
<input *ngSwitchCase="'textbox'" [formControlName]="item.key"
[id]="item.key" [(ngModel)]="itemValue">
我已经修剪了代码,只是为了让您了解我的问题的主要思想。如果您需要更多信息,请告诉我。
谢谢