我需要在处理(通过api)通过表单提交的数据用户后将用户重定向到另一个组件。以下是我试过的代码。
在组件中
onSubmit(model){
if(model.valid === true) {
this.SharedService.postFormdata(model).subscribe(
data => { console.log(data)},
error => Observable.throw(error);
);
this.router.navigate(['PublicPage']);
}
}
但是,在完成调用后,它不会重定向到PublicPage
组件。请帮忙。感谢。
答案 0 :(得分:6)
import { Router } from '@angular/router';
export class HeroesComponent {
constructor(private router: Router) { }
onSubmit(modal): void {
if(model.valid === true) {
this.SharedService.postFormdata(model).subscribe(
(data) => {
// Page redirect when getting response
this.router.navigate(['/PublicPage']);
},
(error) => {
console.log("err", error);
});
}
}
}
为了更好地理解,请阅读此文档:Angular2 routing
答案 1 :(得分:3)
首先将error
置于data
块之外,然后如果要重定向,则添加
data => { this.router.navigate(['PublicPage']); }
或者无论如何你想要电话,然后使用
() => {
this.router.navigate(['PublicPage']);
}
所以试试这样:
onSubmit(model) {
if (model.valid === true) {
this.SharedService.postFormdata(model).subscribe(
data => {
console.log(data);
this.router.navigate(['PublicPage']); // ON SUCCESS
},
error => Observable.throw(error),
() => {
this.router.navigate(['PublicPage']); //ANYHOW WILL CALL
}
);
}
}
希望这会有所帮助。