angular - router.navigate 不起作用

标签 angular angular2-routing

我尝试在成功删除数据后重定向页面。所以我将重定向 router.navigate 放在数据部分的订阅中。但它不起作用,我也尝试过使用 ngZone 也没有任何反应。我还想显示成功消息。我怎样才能证明这一点?

没有 ngZone:

  const rid = params['rid'];
        this.roleSer.deleteRole(rid).subscribe(

            data => { this.router.navigate(['viewroles']) },
            error => { error }
        );
    });

使用 ngZone:

const vrid = this.route.params.subscribe((params: Params) => {
        const rid = params['rid'];
        this.roleSer.deleteRole(rid).subscribe(
            data => { this.zone.run(()=>{
                 this.router.navigate(['viewroles']) 
            }); },
            error => { error }
        );
    });

最佳答案

创建一个重定向函数并使用它

const vrid = this.route.params.subscribe((params: Params) => {
            const rid = params['rid'];
            this.roleSer.deleteRole(rid).subscribe(
                data => { 
                    this.redirect('viewroles');
                },
                error => { error }
            );
        });

    redirect(path): void {
     this.router.navigate(['/' + path]) 
    }

关于angular - router.navigate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44674587/

相关文章:

javascript - 导入 ReactiveFormsModule 后 Angular 路由器停止工作

angular - 强制 Angular 遵循 json 中的接口(interface)类型

javascript - Angular 2动态更改默认路由

angular - Module路由路径延迟加载问题

Angular 2 新路由器 : Change/Set Query Params

Angular 2 使用 ngrx + RxJS 订阅多个组件/路由来填充存储

angular - 如果 Angular2 出现错误,服务器应该返回什么样的 JSON

javascript - 代码执行流程

angular - RouteConfig 在我的 Angular 2 项目中似乎不起作用

javascript - Angular 2 编译失败