¿Es posible tener múltiples enrutadores en la misma plantilla?
Si es así, ¿cómo configurar las rutas?
Estoy usando angular2 beta.
angular
angular2-routing
angular2-template
Islam Shaheen
fuente
fuente
Respuestas:
sí, puede, pero necesita usar el enrutamiento auxiliar. Deberá dar un nombre a la salida de su enrutador:
<router-outlet name="auxPathName"></router-outlet>
y configure la configuración de su ruta:
@RouteConfig([ {path:'/', name: 'RetularPath', component: OneComponent, useAsDefault: true}, {aux:'/auxRoute', name: 'AuxPath', component: SecondComponent} ])
Mira este ejemplo: http://plnkr.co/edit/JsZbuR?p=preview También este video: https://www.youtube.com/watch?v=z1NB-HG0ZH4&feature=youtu.be
La actualización para las rutas auxiliares RC.5 ha cambiado un poco: en la salida de su enrutador use un nombre:
En la configuración de su enrutador:
fuente
Puede tener múltiples salidas de enrutador en la misma plantilla configurando su enrutador y proporcionando un nombre a su salida de enrutador, puede lograr esto de la siguiente manera.
La ventaja del siguiente enfoque es que puede evitar una URL sucia con él. por ejemplo: / home (aux: login) etc.
Suponiendo que en la carga está iniciando appComponent.
app.component.html
Agregue lo siguiente a su enrutador.
Ahora, cuando se carga / home, appComponent se cargará con la plantilla asignada, luego el enrutador angular verificará la ruta y cargará el componente secundario en la salida del enrutador especificada según el nombre.
Como arriba, puede configurar su enrutador para tener múltiples salidas de enrutador en la misma ruta.
fuente
La sintaxis de las rutas auxiliares ha cambiado con el nuevo enrutador RC.3.
Hay algunos problemas conocidos con las rutas auxiliares, pero hay soporte básico disponible.
Puede definir rutas para mostrar componentes en un nombre
<router-outlet>
Configuración de ruta
Salida de enrutador con nombre
Navegar por rutas auxiliares
Parece que la navegación por rutas auxiliares desde routerLink aún no es compatible
Todavía no lo he probado
Ver también
enrutador Angular2 en un componenteRC.5 routerLink DSL (igual que el
createUrlTree
parámetro) https://angular.io/docs/ts/latest/api/router/index/Router-class.html#!#createUrlTree-anchorfuente
@Input()
nombre es una propiedad de laRouterOutlet
clase. Tengo que verificar la sintaxis de la ruta de ruta auxiliar para routerLink.<a [routerLink]="['/team/3', {outlets: {aux: 'chat'}}]">c</a>
<a [routerLink]="[{ outlets: { list:['streams'], details:['parties'] } }]">Link</a>
'
fuente
Sí, puedes, como dijo @tomer arriba. Quiero agregar algún punto a la respuesta de @tomer.
router-outlet
donde desea cargar la segunda vista de enrutamiento en su vista. (enrutamiento auxiliar angular2.)En el enrutamiento angular2, hay pocos puntos importantes aquí.
para obtener más información, lea aquí y aquí.
import {RouteConfig, AuxRoute} from 'angular2/router'; @RouteConfig([ new AuxRoute({path: '/home', component: HomeCmp}) ]) class MyApp {}
fuente
Parece haber otra forma (bastante hacky) de reutilizar la salida del enrutador en una plantilla. Esta respuesta es solo con fines informativos y las técnicas utilizadas aquí probablemente no deberían usarse en producción.
https://stackblitz.com/edit/router-outlet-twice-with-events
La salida del enrutador está envuelta por una plantilla ng. La plantilla se actualiza escuchando los eventos del enrutador. En cada evento, la plantilla se intercambia y se vuelve a intercambiar con un marcador de posición vacío. Sin este "intercambio", la plantilla no se actualizaría.
Sin embargo, este definitivamente no es un enfoque recomendado, ya que el intercambio completo de dos plantillas parece un poco complicado.
en el controlador:
en la plantilla:
fuente
No puede utilizar varias salidas de enrutador en la misma plantilla con la
ngIf
condición. Pero puede usarlo de la forma que se muestra a continuación:fuente