Arrays Angular2-单对象与阵列的对比
在这种情况下,我从数据库接收到一个数据对象,其中包含文件版本的记录。可能有5个版本(5条记录)或返回一个版本 我的问题是我正在使用Arrays Angular2-单对象与阵列的对比,arrays,angular,typescript,Arrays,Angular,Typescript,在这种情况下,我从数据库接收到一个数据对象,其中包含文件版本的记录。可能有5个版本(5条记录)或返回一个版本 我的问题是我正在使用ngFor循环遍历数据数组并将它们打印到表中。如果只返回一条记录,则数据不再是对象数组,而只是单个对象 <tbody class="ruleVersions"> <tr *ngFor="let m of mapData.ruleVersion.x"> <td class="small">V {{ m.RuleVersion }
ngFor
循环遍历数据数组并将它们打印到表中。如果只返回一条记录,则数据不再是对象数组,而只是单个对象
<tbody class="ruleVersions">
<tr *ngFor="let m of mapData.ruleVersion.x">
<td class="small">V {{ m.RuleVersion }}.0</td>
<td [innerHtml]="m.CreatorNTID | ntidLink"></td>
<td class="small">{{ m.VersionNotes ? m.VersionNotes : 'N/A' }}</td>
<td class="small">{{ m.BasedOnRuleVersionID ? m.BasedOnRuleVersionID : 'N/A' }}</td>
<td class="small">{{ m.MetaInsertUtc }}</td>
</tr>
</tbody>
当您收到响应时,您可以检查它是否是数组。如果它不是对象,则可以在数组中设置该对象,因此在服务中类似于以下内容:
getData() {
return this.http.get('url')
.map(response => {
let res = response.json();
if(!Array.isArray(res)) {
return [res]
}
return res;
})
}
所以现在,无论你得到一个数组还是一个对象,它总是可以使用*ngFor
进行编辑,因为组件总是接收一个数组。可能的重复
getData() {
return this.http.get('url')
.map(response => {
let res = response.json();
if(!Array.isArray(res)) {
return [res]
}
return res;
})
}