Я установил одинаковый navbar для всего проекта в файле app.component.html по умолчанию, но на определенной странице/компоненте мне нужен другой. Каков наиболее эффективный способ его достижения? Должен ли я добавлять navbar для каждого компонента?Различные navbar на отдельной странице angular2
ответ
фон
Вы хотите показать другую панель навигации на разных страницах компонентов. Это не проблема. Самый эффективный способ спорный, и нам всем потребуется дополнительная информация о вашем проекте, чтобы конкретно ответить на этот вопрос. Но я покажу вам, как я это сделаю.
Ответ
Я хотел бы создать шаблоны в моем Angular2
проекта. Эти шаблоны будут действовать как шлюзы для определенных страниц на основе контента, который доставляется на эти страницы. Например, если у вас есть одна страница, которая должна быть защищена и должна быть доступна после входа пользователя в систему. Затем открывается другая страница, открытая для публики. Вы можете управлять этими двумя страницами двумя шаблонами, а затем сделать все страницы детьми этих шаблонов.
Так что в вашем случае вам нужно, чтобы навигация была другой. Давайте это разрешим.
Пример
каталог Шаблон
/templates/main.component.ts
@Component({
selector: 'app-dashboard',
templateUrl: './main.component.html'
})
export class MainComponent implements OnInit {
constructor(private router: Router, private auth: Auth) { }
ngOnInit(): void { }
}
/templates/main.component.html
<header></header>
<!-- Main Content Outlet Selector -->
<router-outlet></router-outlet>
<!-- End Main Content Outlet Selector -->
</footer></footer>
/templates/second.component.ts
@Component({
selector: 'app-dashboard',
templateUrl: './main.component.html'
})
export class SecondComponent implements OnInit {
constructor(private router: Router, private auth: Auth) { }
ngOnInit(): void { }
}
/templates/second.component.html
<header></header>
<!-- Main Content Outlet Selector -->
<router-outlet></router-outlet>
<!-- End Main Content Outlet Selector -->
</footer></footer>
Маршруты
/приложение. routing.ts
const APP_ROUTES: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full', },
{ path: '', component: MainComponent, data: { title: 'Main Views' }, children: MAIN_ROUTES },
{ path: '', component: SecondComponent, data: { title: 'Second Views' }, children: SECOND_ROUTES }
];
Теперь, когда у вас есть все, что разработаны вы можете создавать свои дочерние маршруты и передавать правильные шаблоны, которые когда-либо маршрут и мать маршрут вам нравится.
основные/routes.ts
export const MAIN_ROUTES: Routes = [
{ path: '', redirectTo: 'maybe home?', pathMatch: 'full' },
{ path: 'items', component: ItemsComponent },
]
вторичные/маршрутов.ц
export const SECOND_ROUTES: Routes = [
{ path: '', redirectTo: 'aPath', pathMatch: 'full' },
{ path: 'items', component: SomeComponent },
]
Наконец
Мы можем создать дочерний компонент для добавления к компоненту мама!
/main/home.component.ts
@Component({
templateUrl: './home.component.html',
})
export class HomeComponent {
constructor() { }
}
/main/home.component.html
<div>cool stuff happens here because this is the main content area of the page now</div>
И, конечно, все, что мы должны сделать, это убедиться, что мы добавьте домашний компонент в правильные дочерние маршруты. Так что в этом случае MAIN_ROUTES
Только в случае, если вы не уверены, как эти страницы все выходные данные на маршрутизатор-розетки, посмотрите на это,
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'body',
template: '<router-outlet></router-outlet>'
})
export class AppComponent {
}
- 1. уничтожить сессию на отдельной странице
- 2. Печать на отдельной странице Javascript?
- 3. Wordpress комментирует на отдельной странице
- 4. angular2 Navbar инъекция компонент
- 5. Как создать событие на отдельной странице javascript
- 6. Выберите различные значения отдельной группы
- 7. Angular2 Routing from Navbar (AppComponent)
- 8. Показать данные на той же странице или на отдельной странице?
- 9. Angular2 самозагрузкой Navbar выглядит ужасно
- 10. Django - Загрузка полного изображения на отдельной странице
- 11. Показать содержимое на отдельной странице в wordpress
- 12. Показать сообщения WordPress на отдельной странице
- 13. Отображение результатов поиска на отдельной странице
- 14. Включая угловые контроллеры на отдельной странице
- 15. Рекомендации для управления государством на отдельной странице
- 16. Отображение каждой категории на отдельной странице - laravel
- 17. JavaScript игра - счет на отдельной странице
- 18. Scrollto на отдельной странице моего сайта
- 19. Различные CSS на домашней странице
- 20. Wordpress - Navbar прозрачный только на домашней странице
- 21. Как переместить Bootstrap Navbar ниже на странице
- 22. Bootstrap sticky navbar исчезает на странице перезагрузки
- 23. Navbar 100% на странице, в центре изображения
- 24. создайте переключатель navbar на странице html
- 25. JQuery NavBar, содержимое на той же странице
- 26. Bootstrap Navbar Отсутствует на развертывании Heroku (NodeJS, Angular2)
- 27. bootstrap navbar class = активное изменение при поступлении с отдельной страницы
- 28. Различные заголовки на странице сообщения, чем на первой странице, wordpress
- 29. Angular2: Как отобразить детали элемента на другой странице?
- 30. Два компонента Angular2 на той же странице
благодаря много для ответа. Таким образом, в основном вы создаете два навигатора (в компонентах) и путем маршрутизации вы получаете право в одном шаблоне? –
Да. Вот как я установил все свои приложения. Таким образом, я могу показать разные шаблоны, основываясь на том, что должен получить конечный пользователь. Например, если некоторые маршруты должны быть безопасными, и пользователь должен будет войти в систему. Или покажите определенную навигацию или шаблон, а другую - другую. Настройка вашего приложения таким образом даст вам возможность контролировать множество разных представлений на основе ваших требований по мере роста вашего приложения. Если это помогло вам принять ответ. – wuno