2017-10-08 6 views
0

私のサービスには非常に類似した2つの方法がありますので、サブスクリプションは同じです。私のserviceメソッド角型スクリプトパスサービス機能

this.createNewUser(this.userModel, this.userDefaultGroupSelectedId) 
      .subscribe(
      res => { 
       this.msgs = ({ severity: "success", summary: "Success:\n", detail: res }); 
       this.userModel = new User(); 
       this.onConfirm.emit(); 
      }, 
      error => { 
       this.msgs = ({ severity: "error", summary: "Error Message:", detail: error.Message ? error.Message : error.toString() }); 
      } 

それは

createNewUser(user: IUser, userDefaultGroupSelectedId: number): Observable<string> 
    { 
     if (this.asRegistration == false) { 
      return this.userAdministrationService.addNewUser(this.userModel, this.userDefaultGroupSelectedId); 
     } 
     else { 
      this.userAdministrationService.registerNewUser(this.userModel); 
     } 
    } 

と呼ばれるべき機能返しSHOLD createNewUserを呼ぶだろうが、このアプローチは動作しませんを発射するとき、私はそう・実行に参加したかった、私はCannot read property 'subscribe' of undefined

を得ました

私のサービス:

addNewUser(user: IUser, userDefaultGroupSelectedId: number): Observable<string> { 

    return this.http.post(this.addNewUserUrl) 
     .catch(error => super.handleError(error)) 
     .map(response => response.json()); 
} 

registerNewUser(user: IUser): Observable<string> 
{ 

    return this.http.post(this.registerNewUserUrl) 
     .catch(error => super.handleError(error)) 
     .map(response => response.json()); 
} 
+0

明らかaddNewUserかは、registerNewUser関数はundefinedを返します。 – omeralper

+0

あなたの 'addNewUser'と' registerNewUser'関数の実装を見せてください –

+0

@IgorSoloydenkoを更新しました – kosnkov

答えて

3

問題があるようですあなたがthis.userAdministrationService.registerNewUser(this.userModel);の結果を返さないように、この場合の関数の戻り値はundefinedです。

にそれを変更してみてください:

return this.userAdministrationService.registerNewUser(this.userModel); 
関連する問題