如何在Angular2 / 4中的模块之间传递数据?

时间:2017-11-28 10:43:37

标签: javascript angular routes

我有2个模块:root模块和授权模块(延迟加载)。根模块有页脚块,我想隐藏在" auth"路线。我试图通过模块路由传递数据,例如:

{path: 'auth', component: AuthComponent, data: {hideFooter: true}}

但根模块组件无法找到数据,它总是{}。我只能在auth组件中获取此数据。我怎么能这样做,或者有另一种方法来解决我的问题?

3 个答案:

答案 0 :(得分:1)

一种方法是为根模块和authcomponent使用不同的布局。

使用auth组件获取数据

  constructor(route: ActivatedRoute) {
    const hideFooter= route.snapshot.data.hideFooter;
  }

答案 1 :(得分:0)

对于Angular 4,here你有Angular Doc来解决你的问题。

如果您只想通知两个组件,请参阅Angular doc中的“component-interaction”。

此外,here您还遇到了另一个类似的问题。

答案 2 :(得分:0)

快速的方法是在您的app组件中放置if条件

<navbar></navbar>
<router-outlet></router-outlet>
<footer *ngIf="router.url !== 'auth'"></footer>

您还需要在ts文件中导入路由器

app.component.ts

let routes = ['auth', 'someOther']
this.showFooter = routes.indexOf(this.router.url) < 0

然后你的html变成了

<navbar></navbar>
<router-outlet></router-outlet>
<footer *ngIf="showFooter"></footer>