【发布时间】:2019-04-29 01:44:09
【问题描述】:
我想让我的组件更可重用。在组件中,我将两个值与 ngModel 绑定:elem.key 和 elem.value。问题是,无论我想在哪里使用这个组件,元素都必须具有键和值属性,例如来自 Api 的一些数据可能有名称和昵称等。现在我可以重复使用我的组件,但前提是值对象是键和值。我的代码:
html:
<button (click)="addNew()">Add</button>
<div *ngFor="let elem of elements">
<text-input [(ngModel)]="elem.key" type="text"></text-input>
<text-input [(ngModel)]="elem.value" type="text"></text-input>
</div>
ts:
@Input() elements: any[];
addNew() {
this.elements.push({
key: '',
value: ''
});
}
如果我在另一个组件中使用我的组件:
<input-key-value [elements]="values">
如果我只需要添加到值数组 {key: '', value: ''} 它工作正常但有时我想添加例如 {name: '', 昵称: ''},导致数据在这个格式必须发送到服务器。
我尝试添加另一个 Input name 输入,{key: 'name', value: 'name'} 并在 html 中:
<text-input [(ngModel)]="elem[inputs.key]" type="text"></text-input>
<text-input [(ngModel)]="elem.[inputs.value]" type="text"></text-input>
但这再次将错误的数据推送到我的主数组。
【问题讨论】:
-
“但这又将错误的数据推送到我的主数组”是什么意思?
-
并尝试拥有您的组件
-
例如:我想推送到数组:{name:'',昵称:''},但是我的输入键值组件中的函数总是推送 {key:'',值: ''}。但我想将不同的关键元素推送到我的对象,一次键:'',另一个名称:''等。
-
在下面查看我的答案
-
我已经更新了我的答案,现在检查一下。我也提到了视图和组件
标签: javascript angular