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