2017-10-08 1 views
0

J'ai deux méthodes dans mon service qui font des choses très similaires, donc l'abonnement est le même. Je voulais rejoindre exection donc lors de la cuisson ma méthode de serviceFonction de service de passage de caractères dactylographiés angulaires

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() }); 
      } 

il appellerait createNewUser qui Shold retour dont la fonction doit être appelée

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); 
     } 
    } 

mais cette approche ne fonctionne pas, je suis Cannot read property 'subscribe' of undefined

mes services:

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

apparemment fonction addNewUser ou registerNewUser undefined. – omeralper

+0

Montrez-nous vos implémentations de fonctions 'addNewUser' et' registerNewUser' –

+0

@IgorSoloydenko mis à jour – kosnkov

Répondre

3

Le problème semble pour être que vous ne renvoyez pas le résultat de this.userAdministrationService.registerNewUser(this.userModel);, le retour de la fonction dans ce cas est undefined.

Essayez de changer à:

return this.userAdministrationService.registerNewUser(this.userModel);