2017-07-25 5 views
0

私はアングル2を初めて使用しており、サブスクリプションを行う方法がわかりません。 私は(簡易版)のようなものです会員サービスがあります。アングルサブスクリプション、サブスクリプションを持つメソッドを作成するには

import { Injectable, NgZone, Output, EventEmitter } from '@angular/core'; 
import { Network } from '@ionic-native/network'; 
import { HttpProvider } from '../providers/http-provider'; 

@Injectable() 
export class Member { 

    firstName:string = ""; 
    surname:string = ""; 

    constructor(private httpProvider: HttpProvider, private network: Network, zone: NgZone) { 
    } 

    createMember(member){ 
    this.httpProvider.createMember(member).subscribe(
     result => { 
     var data = JSON.parse(result['_body']); 
     this.firstName = member.FirstName; 
     this.surname = member.Surname; 
     return true; 
     }, 
     err =>{ 
     console.error("Error : "+err); 
     return false; 
     } 
    ); 
    } 
} 

、私は会員サービスを利用すると、私のようなものを持ちたい、別のコンポーネントがあります。

this.member.createMember(member).subscribe(data).... 

をので、私ができますメンバーが正常に作成されたことを確認します。

答えて

1

私は私の答えを終え気にしないよ、この

コンポーネント

this.membersService.createMember(member) 
    .subscribe(res => { 
     console.log('success', res) 
     }, err => { 
      console.log('error', err); 
     }); 

サービス

import {Injectable} from '@angular/core'; 
import {Http, RequestOptions, Response, Headers} from '@angular/http'; 
import 'rxjs/Rx'; 

    createMember(member) { 
    const body = JSON.stringify(member); 
    const headers = new Headers({ 
     'Content-Type': 'application/json' 
    }); 
    const options = new RequestOptions({headers: headers}); 

    return this.http.post('/api/members', body, options) 
     .map((res: Response) => res.json()) 
     .catch((err: any) => console.log(err)); 
    } 
+1

ような何かをするだろう、それは実質的には同じだ - しかし、あなたはその 'createMemberを言及する必要があります'何かがそれを購読するまでリクエストを実際に送信しません。 (代わりに[件名](http://reactivex.io/documentation/subject.html)を使用することになります)[構文の強調表示](https://meta.stackexchange.com/questions/184108/)どのような構文が強調表示され、どのようにしますか?/ 184109#184109)typescriptスニペットに役立ちます – 0mpurdy

関連する問題