2017-01-13 2 views
4

Я работаю над приложением, которое вытаскивает копию своего сайта на основе домена. У меня есть приложение, работающее с одним исключением. Я определяю navbar и нижний колонтитул приложения в шаблоне app.component, как показано ниже.Правильный способ решения компонента приложения в Angular 2

<navigation></navigation> 
    <router-outlet></router-outlet> 
    <appFooter></appFooter> 

И внутри шаблона для appFooter и навигации Я разрешающего данные с помощью оператора безопасной navifation, как показано ниже

<p>{{copyService.copy?.somevalue}}</p> 

То, что я действительно хотел бы сделать, это использовать распознаватель и свойства данных ActivatedRoute в что-то вроде этого

var copy = this.route.snapshot.data['copy']; 

в компоненте приложения. Затем передайте данные через входную переменную в нижний колонтитул и навигацию.

К сожалению, я не знаю, как я бы идти о решении для компонента приложения, когда я перенаправлять на мой домашний компонент, как показано ниже

{ path: '', redirectTo: '/home', pathMatch: 'full'}, 

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

Пожалуйста, знайте, что код, который я предоставил, является всего лишь примером кода, а не моей фактической базой кода. Я просто пытался проиллюстрировать текущую проблему, которую я имею.

ответ

6

Способ, которым я мог справиться с этим, заключался в том, чтобы добавить еще один компонентный слой поверх app.component.

{ path: '', redirectTo: '/home', pathMatch: 'full' }, 
{ path: '', 
    component: BaseComponent, 
    resolve: { 
    yourContent: contentResolver 
    }, 
    children: [ 
    { path: 'home'... } 
    ] 
} 

Затем переместите эти:

<navigation></navigation> 
<router-outlet></router-outlet> 
<appFooter></appFooter> 

в вашем base.html из вашего app.html

The решает, что вы определяете в этом BaseComponent станет доступно для всех компонентов (и всех дочерних маршруты) ,

Надеюсь, что вы немного ближе к тому, что ищете.

+0

Спасибо, что это мне помогло. – TyAnthoney

+0

как бы вы это сделали с несколькими модулями? – DauleDK

Смежные вопросы