2017-02-08 13 views
2

// ИЗМЕНИТЬ 2: С угловым 4 кажется, что это исправлено/исправлено. В настоящее время я могу определить имена «внутри» неназванной розеткиНе удается найти именованную розетку для загрузки компонента

// EDIT: Как отметил @Michelangelo, это, по-видимому, «выбор дизайна»/ошибка, связанная с угловым маршрутизатором. В качестве обходного пути я динамически вставляю user-edit.component в список пользователей с текущим пользователем.
См. https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html для получения дополнительной информации.


У меня есть следующие настройки:

{ 
     path: 'admin', 
     canActivate: [ AuthGuard, PermissionGuard ], 
     children: [ 
      { 
       path: '', 
       component: UserListComponent, 
       resolve: { 
        users: UsersResolver 
       } 
      }, 
      { 
       path: ':id', 
       component: UserEditComponent, 
       outlet: 'admin' 
      } 
     ] 
    } 

Выпускное выглядит как:

<router-outlet name="admin"></router-outlet> 

И я стараюсь перемещаться с:

this.router.navigate(['/admin', {outlets: {'admin': [user.id]}}]); 

Если я пытаюсь перейдите к этому маршруту без указания выхода, он отлично работает. Но как только я пытаюсь использовать именованный маршрутизатор, он ломается.

Error: Cannot find the outlet admin to load 'UserEditComponent' 

ответ

1

Хорошо, не совсем ответ на вашу проблему, но я столкнулся с такой же вопрос и я в конечном итоге не будет именованных точек из-за этой проблемы. Если вы ищете в Интернете, вы не единственный, у кого есть эта проблема.

Похоже маршрутизацией для угловых 2 до сих пор зафиксировать основные вещи, которые раньше хорошо работать в AngularJS 1.x

Что я сделал, это показать и скрыть элементы из приложения см. мой ответ здесь: https://stackoverflow.com/a/41684866/4194436

+0

«[..] требует перерыва». Обходной путь может нарушить мой существующий код. Nevermind, спасибо за то, что поделились своим подходом! – Lelsoos