2016-10-06 8 views
0

RxJSを使ってjson-requestを処理するangle2 app(TypeScript)があります(私はangleサービスについて知っていますが、単純化したコードです)。RxJSでこのjson-responseを処理する方法は?

このコードは、クラスメソッドである:

クラスで
this.http.post(url, body, options) 
        .map(
         response => response.json() 
        ) 
        .subscribe(result => { 
         persons => this.persons = persons 
        }); 

私はフィールドpersonsを持っていると私は、このフィールドは、応答からデータを取得する必要があることをしたい。また、このpersons*ngFor

を使用するために私が持っていますそのような応答を生成するjava-backend(console.log()map()に追加した後にこの出力を得ました):

message:"[{"personId":"29d5a903-b664-4fc3-9bd9-0836f1b3dc58","email":"[email protected]","firstname":"Test","lastname":"Testoff","username":"oooo","birthdate":"2000-05-28","gender":"male","password":"xxxxx","active":null,"profiles":[]}]" 

私は間違って何をしていますか? (私はバックアンダーです、申し訳ありませんが、愚かな質問のためかもしれません)

+0

'response.json()'とは何ですか?あなたはそれが文字列を返すと確信していますか? 'result => { persons => this.persons = persons }'これは構文上正しいとは言えません。 – zerkms

+0

私は固定コードを持っています、それは何が間違っているのを定義するためのデバッグのためでした残念です。 "構文的に正しい" - TypeScriptはOKだと思う、pls、ここをチェックするhttps://plnkr.co/edit/r1QFQj0wZ5hgJxrsRoGF?p=preview –

+0

https://www.typescriptlang.org/play/ 'const foo =()=> {foo => 2; }; 'それをどう翻訳するかを見てください。これは呼び出されない無名関数に変換されるため、無操作です。 PS:うん、それは*構文的に正しいです、私の悪い、まだ - 論理的に間違っています。 – zerkms

答えて

0

コードを修正して動作しているのを見ました。私はangle2の哲学に則った別のソリューションを紹介したいと思います。アプリケーションのローカル変数を保持せずに、直接サービスのシーケンスを使用してください。

<my-person 
    *ngFor="let person; of peopleService.people | async;" 
    [name]="person.name" 
    (hello)="saidHello($event)"> 
    </my-person> 
関連する問題