2017-09-27 6 views
0

私はangular2で新しく、キーをループしてuser_idをuser nameに変更します。これはuser.component.tsのコードです。私はこのようになっています:[{"1": "Begginer、professional、"}、{"2": "Begginer"}、{"4": "Professional、freshers"}]以下のような:angular2のハッシュキーに値をループして挿入する

A Begginer、プロ

B Begineer

C Professionalは、新鮮

ABCはユーザー名です。私はこのように使用しているとき

this.userCategories = response; 
console.log(JSON.stringify(this.userCategories)); //[{"1":"Begginer ,professional ,"},{"2":"Begginer"},{"4":"Professional, freshers"}] 
this.userCategories = this.userCategories.map(i => { 
    let user = []; 
    let usr = []; 
    const User_id = Object.keys(i)[0]; // here I am getting user_id 
    for(let j of User_id){ 
    this.userService.userName(j).subscribe(
    name => { 
     usr.push(name); // pushing name of users in an array. 
     return usr; 
    }, 
    err => { 
     console.log('err:', err); 
    } 
    ); 
    } 
    user[0] = usr; 
    console.log(user[0]); // here I am getting username in an array. 
    user[1] = i[User_id]; 
    return user; 
}) 

は、次にビューで:

<a >{{userCategories[0] | json}}</b> 
<a >{{userCategories[1]}}</a> 

私が取得しています:

[ "\"A \"" ] Begineers,professional 
    [ "\"B \"" ] Begineers 
    [ "\"C \"" ] Professional,fresher 

は、誰も私を助けてくださいでした。前もって感謝します。

答えて

0

ような何か試してみてください: - * ngFor私は配列としてそれを変換した配列で動作しますので

let response = [{ "1": "Begineer ,professional ," }, { "2": "Begineer" }, { "4": "Professional, freshers" }]; //JSON Array [{"1":"Begineer ,professional ,"},{"2":"Begineer"},{"4":"Professional, freshers"}] 
/** 
* Please make sure map always return array 
* map() method creates a new array with the results of calling a function for every array element. 
* 
* And your parsing as Object {"A" : "Begineer,professional"} 
* 
* to make it as Object use it as 
*/ 
response.map((value, key) => { 
    //Get UserName By UserID Function 
    let userId = Object.keys(value)[0]; 
    this._service.username(userId).subscribe(name => { 
     this.userCategories.push({key : name , username : value[userId]}) ; 
    }) 
}) 

を...

としてあなたのビュー更新してください: -

<div *ngFor="let user of userCategories"> 
     <p> 
       <a>{{user.key}}</a> 
       <a>{{user.username}}</a> 
     </p> 
</div> 
+0

を私が編集しましたあなたが投稿したような私の質問は出力されていません。 –

+0

* ngForは配列のオブジェクトではなく、更新された答えを参照してください –

+0

Thanks @Double H、ブラウザのコンソールでこれを取得しています。 ERRORの例外TypeError:未定義 –

関連する問題