我想在angular2中显示哈希值。我得到哈希格式的响应:
[{"1":"7"},{"2":"6"},{"3":"8"},{"4":"1"}]
“1”是user_id,“7”是其帖子的计数。我需要在表中的用户索引页面中显示它。
User_Id Posts
1 7
2 6
有人可以帮帮我吗?提前谢谢。
答案 0 :(得分:0)
in component you will use the response to parse like this
response = JSON.stringify(obj);
<table class="table table-inverse">
<thead>
<tr>
<th>#</th>
<th>User_Id</th>
<th>Posts</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let resonse of responseDto;">
<th scope="row">1</th>
<td>response['User_Id']</td>
</tr>
<tr*ngFor="let resonse of responseDto;">
<th scope="row">2</th>
<td>response['Posts']</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
您可以将user_id拆分并发布到2个不同的数组中,并使用这些数组填充表格。这里userIdArray会给你[1,2,3,4]而postsArray会给你[7,6,8,1]。
var userIdArray = [];
var postsArray = [];
array.forEach(function(userObject) {
//userObject = {"1":"7"} or {"2":"6"} etc...
userIdArray.push(Object.keys(userObject)[0]);
postsArray.push(userObject[userIdArray[array.indexOf(userObject)]]);
});
我没有测试过shashi的回答是想知道这个是否有效,因为在使用循环方面,这对我来说似乎更可行。
答案 2 :(得分:0)
你可能想要这样的东西
data:any = [{"1":"7"},{"5":"6"},{"3":"8"},{"4":"1"}];
ngOnInit(){
this.data = this.data.map( i => {
//we need to create a new array to store the new data.
let newItem = [];
//gets the property name. So this is 1,5,3,4
const propertyName = Object.keys(i)[0];
newItem[0]= propertyName;
//gets the value. So this is 7,6,8,1
newItem[1] = i[propertyName] ;
return newItem;
})
}
检查演示 https://stackblitz.com/edit/angular-rispse?file=app%2Fapp.component.ts
我在javascript方面不是很好,必须有更好的方法来做到这一点。
希望这有帮助。