私は、router.eventsへのサブスクリプションを行うbreadcrumbsコンポーネントを使用しています。 問題はコンポーネントが初めて読み込まれたときで、サブスクリプションを起動しません。角度2 router.eventsサブスクリプションが実行されない
ngOnInit(): void {
console.log("oninit beradcumbs");
this.router.events.filter(event => event instanceof NavigationEnd).subscribe(event => {
this.breadcrumbs = [];
let currentRoute = this.route.root,
url = '';
do {
const childrenRoutes = currentRoute.children;
currentRoute = null;
childrenRoutes.forEach(route => {
if (route.outlet === 'primary') {
const routeSnapshot = route.snapshot;
url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
this.breadcrumbs.push({
label: route.snapshot.data,
url: url
});
currentRoute = route;
}
});
} while (currentRoute);
console.log("Breadcumbs",this.breadcrumbs);
});
}
routerLinkプロパティを持つリンクをクリックすると、サブスクリプションから値が送信され、正常に動作します。 私は占いで働い1で私のプロジェクトを比較し、ブレッドクラム・コンポーネントで、ルータの状態は次のようになります。Not working Router
と作業1:Working router
あなたはより多くの情報が必要な場合は、助けるために今私をしてみましょう:) 事前に感謝!
このコードをコンストラクタ内に配置してください。 – Vega
@Vegaはい、うまくいきます!なぜ私は理解していない。私はこのコンポーネントのための他のプロジェクトと同じコードを使用しています –