2017-01-31 4 views
0

返品の種類に問題があります。私が含まれているHTMLファイル持って{"categoryName":"Google","id":"58591d2b7672d99910497bec","clientId":"585808f6737f6aad1985eab2"},{"categoryName":"Yahoo","id":"58591d4c7672d99910497bef","clientId":"585808f6737f6aad1985eab2"},{"categoryName":"Msn","id":"585d25f6ae4b2ecb056bc514","clientId":"585808f6737f6aad1985eab2"}ObservableなサービスからArrayへの変換をAngular2のngForに変換する方法は?

: まず私のデータ構造は次のとおりです。 はここに私の問題です

<tr *ngFor="let category of categories; let id = index"> 
         <td> 
          <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect mdl-data-table__select" 
            for="row[3]"> 
           <input type="checkbox" id="row[3]" class="mdl-checkbox__input"/> 
          </label> 
         </td> 
         <td class="mdl-data-table__cell--non-numeric"><a [routerLink]="['/category/links']"></a>{{ 
          category.categoryName }} 
         </td> 
         <td class="mdl-data-table__cell--non-numeric">{{category.categoryName}}</td> 
         <td #category.id><i (click)="deleteCategory(id)" class="material-icons">delete</i></td> 
        </tr> 

コンポーネントは以下の通りですが(私だけngOnInit()ここに書きます)

ngOnInit(): void 
    { 
     this.categoryService.getCategories().subscribe((data) => { 
       this.categories=data; 
       console.log("data inside component" + data); 
      } 
     ) 
      //console.log(JSON.stringify(this.categories)); 
    //  .map((data) => 
    //  { 
    //   this.categories=data; 
    //  }) 
    } 

とサービスは次のとおりです。

getCategories(){ 
     return this.category.find({where: {clientId: this.userApi.getCurrentId()}}).map((data) => { 

      console.log("type of data: "+ typeof(data)); 

      console.log ("data:" + JSON.stringify(data)); 
      //return data; 
     }, err => { 
      console.log(err); 
     }); 
    }; 

サービスからconsole.logを実行すると、データが表示されます。私はコンポーネントからにconsole.logを行う場合は、何も表示されません。メッセージは次のとおりです。

data inside componentundefined 

「データ」サービスからコンポーネントに渡されていないかのように、正しいから渡され、そうでないかではありませんタイプ。

事前に感謝し、よろしく

+0

私はあなたのサービスから観察可能なものを返さないと思います。 – JSNinja

+0

タイトルのチェックアウトについては、http://stackoverflow.com/questions/41865471/rxjs5-operator-to-convert-object-map-to-arrayを参照してください。あなたのサービスの地図オペレーターで..それがなければObservableは何も返さない...それは監視だと思う? – Thibs

+0

これは問題ありません。ありがとう –

答えて

1

map文のコメントを解除復帰。あなたはデータのマップを行った後に何も返さないので、undefinedが返ってきました。

getCategories() { 
    return this.category.find({where: {clientId: this.userApi.getCurrentId()}}).map((data) => { 

    console.log("type of data: "+ typeof(data)); 

    console.log ("data:" + JSON.stringify(data)); 
    return data; // uncomment this line 
    }, err => { 
     console.log(err); 
    }); 
}; 
関連する問題