Javascript 角度组件之间的数据共享

Javascript 角度组件之间的数据共享,javascript,angular,Javascript,Angular,我是新来的。我正在使用angular 6创建一个项目。我在共享数据时遇到了一个问题。以下是项目结构: 1) 标题组件 2登录组件 3) 主分量 4) 共享服务 我正在基于当前路由将类添加到标题组件中。 这是关于页面刷新的工作。但是,当我从一个组件移动到另一个组件时,这不起作用 代码如下: 布局组件是: <app-header></app-header> <router-outlet></router-outlet> <app-footer&g

我是新来的。我正在使用angular 6创建一个项目。我在共享数据时遇到了一个问题。以下是项目结构:

1) 标题组件 2登录组件 3) 主分量 4) 共享服务

我正在基于当前路由将类添加到标题组件中。 这是关于页面刷新的工作。但是,当我从一个组件移动到另一个组件时,这不起作用

代码如下:

布局组件是:

<app-header></app-header>
<router-outlet></router-outlet>
<app-footer></app-footer>
</div>

请注意:在“页面刷新”中,此功能正在运行。

这是因为,您的标题组件在导航时未重新插入,因为它位于
路由器出口
之外。您需要监听路由更改并相应地执行所需的操作

因此,在Header组件中,您可以订阅路由器事件并侦听
NavigationEnd
事件以检查URL:

import {NavigationEnd, Router} from '@angular/router';
import {filter} from 'rxjs/operators';
...



constructor(private router: Router) {
    this.subscribeRouterEvents();

}

subscribeRouterEvents = () => {
    this.router.events.pipe(
      filter(e => e instanceof NavigationEnd)
    ).subscribe(() => {
       console.log(this.dataService.urlExists())
       if(this.dataService.urlExists()){
          this.url = true
       }else{
          this.url = false
       };
    });

很乐意帮忙:)
urlExists(){
     this.url = this.router.url
     if(this.url == "/"){
         return false;
     }else{
         return true;
     }
 }
import {NavigationEnd, Router} from '@angular/router';
import {filter} from 'rxjs/operators';
...



constructor(private router: Router) {
    this.subscribeRouterEvents();

}

subscribeRouterEvents = () => {
    this.router.events.pipe(
      filter(e => e instanceof NavigationEnd)
    ).subscribe(() => {
       console.log(this.dataService.urlExists())
       if(this.dataService.urlExists()){
          this.url = true
       }else{
          this.url = false
       };
    });