Angular 4:如何通过路由导航传递formGroup

时间:2017-12-11 09:06:05

标签: angular

我有一个组件期待一个formGroup。 现在有了我的主页,我想要做的是每当我点击一个按钮然后它将调用一个然后运行的功能 this.router.navigate(['my-component']);

现在我需要通过这个传递formGroup但是我无法理解它是如何完成的。我试过queryParams但没有成功。

如果我可以将formGroup传递给此my-component组件,那将会很棒。任何帮助

1 个答案:

答案 0 :(得分:0)

创建一个共享service,其变量为behaviorSubject

创建set方法和get方法,如下所示:

public set $yourVariable(...data_input){
   //your logic
}

public get $yourVariable(){
  return this.yourVariable.asObservable();
}

在您的组件中(或您需要数据的地方)inject该服务。默认情况下,添加一个名为isAlive的变量,该变量设置为true。使用以下代码添加NgOnDestroy方法:

this.isAlive = false

这样可以防止在您的组件未获得分配时,您所写的订阅处于有效状态。

以这种方式添加或修改您的OnInit方法:

...
this.yourService.$yourVariable
.takeWhile(() => this.isAlive)
.subscribe( event => {
   //your logic here
});
...

如果您的组件需要数据before注入服务,只需添加.filter以防止数据在您的请求完成之前呈现。