Jaki jest najlepszy sposób korzystania z dwóch całkowicie różnych układów w tej samej aplikacji Angular2? Na przykład na mojej trasie/logowaniu chcę mieć bardzo proste pole horyzontalnie i pionowo, dla każdej innej trasy chcę mieć pełny szablon z nagłówkiem, treścią i stopką.Jak przełączać układy w Angular2
Odpowiedz
W swoim głównym komponencie html możesz dodać następujący punkt docelowy, którego użyjesz do zmiany układu.
<router-outlet name="header"></router-outlet>
<router-outlet name="navbar"></router-outlet>
<router-outlet></router-outlet>
<router-outlet name="footer"></router-outlet>
W tym przypadku możesz skonfigurować trasy, aby zmienić nagłówek, navbar, jeśli taki istnieje, i stopkę aplikacji po zmianie strony. Poniżej znajduje się przykład konfiguracji tras.
Przykład 1 Załóżmy pierwszy układ ma tylko nagłówek i stopkę bez bocznego paska nawigacyjnego/
export const welcome_routes: RouterConfig = [
{ path: 'firstpage', children:[
{ path: 'login', component: LoginComponent},
{ path: 'signup', component: SignupComponent},
{ path: '' , component: Header1Component, outlet: 'header'}
{ path: '' , component: Footer1Component, outlet: 'footer'}
]}
];
Przykład 2. Jest swoich tras config dla drugiego układu
export const next_layout_routes: RouterConfig = [
{ path: 'go-to-next-layout-page', children:[
{ path: 'home', component: HomeComponent},
{ path: '' , component: Header2Component, outlet: 'header'}
{ path: '' , component: NavBar2Component, outlet: 'navbar'}
{ path: '' , component: Footer2Component, outlet: 'footer'}
]}
];
Z to bardzo łatwo dodać trzeci i czwarty i ... układ do strony.
Nadzieja to pomaga
** Updated **
RouterConfig została zmieniona na trasach.
więc powyższy kod będzie teraz
export const welcome_routes: Routes = [
{ path: 'firstpage', children:[
{ path: 'login', component: LoginComponent},
{ path: 'signup', component: SignupComponent},
{ path: '' , component: Header1Component, outlet: 'header'}
{ path: '' , component: Footer1Component, outlet: 'footer'}
]}
];
Gorąco polecam lekturę samouczka zespołu Angular na temat trasowania here.
Istnieje kilka konfiguracji, które będą potrzebne do wdrożenia, ale niektóre z kluczowych etapów są:
Załóż app.routes.js plik gdzie podać nazwę trasy i element, który powinien być ładowane po trafieniu tej trasy.
import { provideRouter, RouterConfig } from '@angular/router'; import { LoginComponent } from 'components/login.component' const routes: RouterConfig = [ { path: '/login', //name of the route component: LoginComponent //component to load when route is hit } ]; export const appRouterProviders = [ provideRouter(routes) ];
W składnika głównego, gdzie można kliknąć link (czyli nav-bar), trzeba dodać 'myRouteName' [routerLink] = (np '/ login') i parę routerem - znaczniki outletów, w których wstawiany jest nowy komponent (widok aka).
import { Component } from '@angular/core'; import { ROUTER_DIRECTIVES } from '@angular/router'; @Component({ selector: 'nav-bar', template: ` <h1>{{title}}</h1> <a [routerLink]="['/login']">Login</a> <router-outlet></router-outlet> `, directives: [ROUTER_DIRECTIVES] }) export class AppComponent { }
nadzieję, że pomoże. W ciągu ostatniego miesiąca uczyłem się kanciastości 2, a dokumentacja na temat angular.io była nieoceniona. Bardzo jasne, szczegółowe wyjaśnienia na wiele aspektów i dobry pierwszy przystanek podczas wchodzenia w nowy temat.
Proszę nie używać funkcji urywek, jeśli kod nie jest właściwie plik wykonywalny. –
Przeczytałem samouczek na temat routera, ale nie dotyczy to mojego pytania. – Kory
Innym prostym sposobem jest zdefiniowanie dzieci tras:
const appRoutes: Routes = [
{
path: 'fullLayout',
component: FullLayoutComponent,
children: [
{ path: 'view', component: HomeComponent },
]
}, {
path: 'simpleLayout',
component: SimpleLayoutComponent,
children: [
{ path: 'view', component: HomeComponent },
]
}
];
/fullLayout/Widok - pokazuje pełną strukturę układ
/simpleLayout/widoku - pokazuje prostą strukturę układu:
app.component.html
<router-outlet></router-outlet>
pełnym layout.component.html
<h1>Full layout</h1>
<router-outlet></router-outlet>
<h1>FOOTER</h1>
proste layout.component.html
<h1>Simple layout</h1>
<router-outlet></router-outlet>
W kątowe 4 (i prawdopodobnie również w Kątowymi 2) można zrobić:
const routes: Route[] = [
{path: 'admin', redirectTo: 'admin/dashboard', pathMatch: 'full'},
{
path: 'admin',
children: [
{
path: '', component: DefaultLayoutComponent,
children: [
{path: 'dashboard', component: DashboardComponent}
]
},
{
path: '',
children: [
{path: 'login', component: LoginComponent}
]
}
]
}
]
Za pomocą path: ''
nie będziesz musiał wymyślać różnych przestrzeni nazw w celu użycia prostego układu. To właśnie poglądy wyglądać następująco:
index.html:
<router-outlet>
default-layout.html:
<div class="sidebar"></div>
<div class="content">
<router-outlet></router-outlet>
</div>
- 1. Jak przełączać w JavaScript/jQuery
- 2. układy w expressjs
- 3. Jak przełączać strzałki rozwijane
- 4. Układaj układy na Androida i układy zagnieżdżone w ramach powiększania
- 5. Układy RazorEngine
- 6. Jak debugować układy Swapu Java
- 7. dostosowywania układy slajdów w slidify
- 8. Różne układy wierszy w ListView
- 9. Jak "przełączać się" z Mercurial
- 10. Android Organizuj układy w podkatalogach
- 11. Układy EJS w Express 3
- 12. Tkinter! Zrozumienie, jak przełączać ramki
- 13. Jak mogę przełączać właściwości w reduktorze?
- 14. Jak przełączać pliki układu w Zend Framework?
- 15. Jak przełączać Caps Lock w VB.NET?
- 16. Jak przełączać klasę elementów w kolejności?
- 17. Jak przełączać komentarze roxygen w Rstudio?
- 18. CakePHP, rozszerzenia i układy
- 19. rekurencyjne układy z Handlebars.js
- 20. Układy Android pod podfolderami
- 21. Przełączać użytkownika w skrypcie init?
- 22. Planarne układy wykresów
- 23. pyside pokaż/ukryj układy
- 24. PlantUML różne układy
- 25. Jak często używane są układy Xilinx?
- 26. Jak zaimplementować układy inne niż domyślneLayout
- 27. Jak równomiernie rozłożyć przyciski/układy w pionie w systemie Android?
- 28. Różne układy podrzędny w viewDidLoad i viewWillAppear
- 29. Układy różnych modeli telefonów komórkowych
- 30. Jak `ngOnChanges` pracę w` angular2`
To wygląda na to, czego szukam. Dlaczego masz składniki logowania i rejestracji na tej samej trasie? Ponadto powinienem założyć, że HTML byłby pusty w Header1 i Footer1Components? – Kory
Zazwyczaj logowanie i rejestracja (dla większości aplikacji) używa tego samego nagłówka i stopki, dlatego mam je na tej samej trasie. Możesz umieścić je w różnych plikach trasy. również możesz usunąć, to tylko przykład. – oseintow
Oczywiście kod HTML nagłówka Header1 i Footer1 może być pusty, jeśli jest taki, jak chcesz. – oseintow