2016-05-17 9 views
1

に定義されていないユーザーを登録し、メインページにリダイレクトする私の方法であって、それ以上のthis.routerはここでAngularJS 2

onSubmit(){ 
    this.userService.createUser(this.user).subscribe(function (response) { 
      alert('Successfully registered'); 
      localStorage.setItem('token', response['token']); 
      this.router.navigate(['Home']); 
     }, function (err) { 
      console.log(err); 
     } 
    ); 
} 

、私はこのコンストラクタを持っている:

constructor(private router: Router, private userService: UserService){} 

私が追加主成分にROUTER_PROVIDERS

providers: [ 
    ROUTER_PROVIDERS, 
    HTTP_PROVIDERS 
] 

私は、ユーザーを登録しようとすると、私はこのエラーを取得:

TypeError: Cannot read property 'navigate' of undefined 

私は間違っていますか?

答えて

5

あなたは(あなたのコンポーネントのインスタンスに対応)、「コンテキストこの」を使用できるようにするには、あなたのコード内の矢印の関数を使用する必要があります。

onSubmit(){ 
    this.userService.createUser(this.user).subscribe((response) => { // <--- 
     alert('Successfully registered'); 
     localStorage.setItem('token', response['token']); 
     this.router.navigate(['Home']); 
    }, (err) => { // <--- 
     console.log(err); 
    } 
); 
} 
+0

あなたは偉大な男が私のイライラissue.Iが同じだった解決rはsweetAlert2の使用中に問題が発生しました。 –