Не удается прочитать свойство 'outlets' из null в Angular 6 - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь использовать routerLink и router-outlet, но в моем проекте Angular 6 возникает проблема Cannot read property 'outlets' of null.

Мне удалось воссоздать проблему в этом простом примере Angular 6проект здесь https://stackblitz.com/edit/angular-dk8i8y

Ошибка возникает при нажатии на ссылку маршрута, хотя значение жестко задано.

<a [routerLink]="['/manage', 'plugins' ]" > Plugins </a>

Не могли бы вы посоветовать?

Ответы [ 3 ]

0 голосов
/ 24 июля 2018
<a *ngIf="post" [routerLink]="['/posts',post?.id]">{{post?.title}}`</a>
<a *ngIf="!post">{{post?.title}}</a>
0 голосов
/ 14 августа 2019

Примечание для всех, кто столкнулся с этой проблемой;

В Angular 7 я также сталкивался с этой проблемой при использовании ActivatedRoute для извлечения несуществующего параметра.Например, если вы сделаете этот вызов;

this.projectId = this.activatedRoute.snapshot.paramMap.get('projectId');

Но если этот идентификатор отличается или не существует в ваших определениях маршрута, вы получите эту ошибку.

          {
            path: 'organize/:id',
            loadChildren: '../project-organize/project-organize.module#ProjectOrganizePageModule'
          },

В этом примере мой маршрут указывает параметр с именем id, но я использую projectId в своем запросе ActivatedRoute.

0 голосов
/ 07 июня 2018

Я не совсем уверен, что это можно сделать по-другому, но с неназванным выходом это работает.

Кроме того, при изменении маршрутов компоненты не воссоздаются повторно, поэтому необходимо подписаться на параметры маршрута, чтобы получать уведомления при изменении маршрута.В этих случаях часто хорошей идеей является использование асинхронного канала, так как он заботится об отмене подписки, когда компонент уничтожается.Я обновил Stackblitz ниже:

https://stackblitz.com/edit/angular-qppimo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...