È possibile avere una router-presa multipla nello stesso modello?Angolare2 router-presa multipla nello stesso modello
se sì, quindi come configurare i percorsi?
Sto usando angular2 beta.
Grazie.
È possibile avere una router-presa multipla nello stesso modello?Angolare2 router-presa multipla nello stesso modello
se sì, quindi come configurare i percorsi?
Sto usando angular2 beta.
Grazie.
sì, ma è necessario utilizzare l'instradamento ausiliario. è necessario dare un nome al router-outlet:
<router-outlet name="auxPathName"></router-outlet>
e configurare il percorso di configurazione:
@RouteConfig([
{path:'/', name: 'RetularPath', component: OneComponent, useAsDefault: true},
{aux:'/auxRoute', name: 'AuxPath', component: SecondComponent}
])
check out questo esempio: http://plnkr.co/edit/JsZbuR?p=preview Anche questo video: https://www.youtube.com/watch?v=z1NB-HG0ZH4&feature=youtu.be
Aggiornamento per RC.5 Le route Aux sono leggermente cambiate: in y la nostra presa di router utilizza un nome:
<router-outlet name="aux">
nella configurazione del router:
{path: '/auxRouter', component: secondComponentComponent, outlet: 'aux'}
a proposito, a partire da gennaio 2016, in base a questa risorsa, non dovremmo ancora usare aux, poiché non è pronto https: // github.it/angular/angular/issues/5027 # issuecomment-169464546 –
grazie per la risposta, sto usando angular2 beta. ho provato a definire il percorso aux: {aux: '/ edit-entità /: id', il nome: 'EditEntity', componente: EditEntityComponent} quando mi chiamano non funziona: this._router.navigate (['/', ['EditEntity'], {id: id}]); – Islam
assicurati di includere l'itinerario completo nella sezione di navigazione, non relativo al componente. –
Sì, è possibile, come detto da @tomer sopra. voglio aggiungere un punto alla risposta @tomer.
router-outlet
in cui si desidera caricare la seconda vista di routing nella visualizzazione. (routing ausiliario angolare2)Nell'instradamento angolare2 ci sono alcuni punti importanti.
per ulteriori informazioni leggere fuori here e here.
import {RouteConfig, AuxRoute} from 'angular2/router';
@RouteConfig([
new AuxRoute({path: '/home', component: HomeCmp})
])
class MyApp {}
Entrambi i collegamenti sono interrotti. – ceebreenk
La sintassi dei percorsi ausiliari è stata modificata con il nuovo router RC.3.
Esistono alcuni problemi noti con route aux, ma è disponibile il supporto di base.
È possibile definire percorsi di mostrare i componenti in una configurazione <router-outlet>
percorso di nome
{path: 'chat', component: ChatCmp, outlet: 'aux'}
Chiamato presa router
<router-outlet name="aux">
percorsi Naviga aux
this._router.navigateByUrl("/crisis-center(aux:chat;open=true)");
Sembra navigazione percorsi aux da routerLink non è ancora supportato
<a [routerLink]="'/team/3(aux:/chat;open=true)'">Test</a>
<a [routerLink]="['/team/3', {outlets: {aux: 'chat'}}]">c</a>
non provato io stesso ancora
Vedi anche Angular2 router in one component
RC.5 routerLink DSL (parametro uguale a createUrlTree
) https://angular.io/docs/ts/latest/api/router/index/Router-class.html#!#createUrlTree-anchor
Si suppone che funzioni in RC5? Non sono riuscito a farlo funzionare. Guardando il codice sorgente per il router non riesco a trovare alcun "nome @Input()". – Kungen
Il nome '@Input()' è una proprietà della classe 'RouterOutlet'. Devo controllare la sintassi del percorso di instradamento aux per routerLink. –
La sintassi corrente sembra essere 'c' –
È possibile avere più router-outlet nello stesso modello configurando il router e fornendo il nome alla propria presa router,
è possibile ottenere questo come segue.
Il vantaggio di questo approccio è che è possibile evitare l'URL dall'aspetto sporco con esso. es .:/home (aux: login) ecc.
Supponendo che sul carico si stia riavvolgendo appComponent.
app.component.html
<div class="layout">
<div class="page-header">
//first outlet to load required component
<router-outlet name='child1'></router-outlet>
</div>
<div class="content">
//second outlet to load required component
<router-outlet name='child2'></router-outlet>
</div>
</div>
aggiungete quanto segue al vostro router.
{
path: 'home', // you can keep it empty if you do not want /home
component: 'appComponent',
children: [
{
path: '',
component: childOneComponent,
outlet: 'child1'
},
{
path: '',
component: childTwoComponent,
outlet: 'child2'
}
]
}
Ora, quando/home è caricato appComponent otterrà di carico con template assegnato, quindi router angolare controllerà il percorso e caricare il componente bambini in uscita router specificato sulla base del nome.
come sopra è possibile configurare il router per avere più router-outlet nello stesso percorso.
<a [routerLink]="[{ outlets: { list:['streams'], details:['parties'] } }]">Link</a>
<div id="list">
<router-outlet name="list"></router-outlet>
</div>
<div id="main">
<router-outlet name="details"></router-outlet>
</div>
`
{
path: 'admin',
component: AdminLayoutComponent,
children:[
{
path: '',
component: AdminStreamsComponent,
outlet:'list'
},
{
path: 'stream/:id',
component: AdminStreamComponent,
outlet:'details'
}
]
}
Cosa esattamente desidera implementare? Le sotto-strade potrebbero adattarsi alle tue esigenze? Vedi questo link: https://angular.io/docs/ts/latest/guide/router.html#!#child-router. –
Ho bisogno di creare un'applicazione che utilizza più sessioni (schede) ogni sessione ha lo stesso contenuto (come le schede del browser). – Islam
controlla la conversazione dallo sviluppatore del router, per vedere cosa è attualmente possibile -> https://www.youtube.com/watch?v=z1NB-HG0ZH4 SE ricordo bene ci sono percorsi per bambini e percorsi ausiliari. –