2016-03-31 40 views
3

'daki uygulama şablonunun dışındaki rota bağlantılarını tanımlama Uygulamanın dışındaki angular2 uygulama yönlendirici bağlantılarını tanımlamanın kötü bir uygulama olup olmadığını merak ediyorum; ya da daha iyi bir yolu varsa.Angular 2

Tüm angular2 belgelerinde, yönlendirme örnekleri verir ve uygulama şablonu içindeki bağlantıları tanımlar (aşağıya bakın).

@Component({ 
    selector: 'my-app', 
    template: ` 
    <h1>Component Router</h1> 
    <nav> 
     <a [routerLink]="['CrisisCenter']">Crisis Center</a> 
     <a [routerLink]="['Heroes']">Heroes</a> 
    </nav> 
    <router-outlet></router-outlet> 
    `, 
    directives: [ROUTER_DIRECTIVES] 
}) 
@RouteConfig([ 
    {path:'/crisis-center', name: 'CrisisCenter', component: CrisisListComponent}, 
    {path:'/heroes',  name: 'Heroes',  component: HeroListComponent} 
]) 
export class AppComponent { } 

Bu örnekte, bu <a [routerLink]="['CrisisCenter']">Crisis Center</a> bağlantıları tanımlamaktadır. Bunu yapan

Ama ya:

<html> 
    <head></head> 
    <body> 
     <nav> 
      <a href="#/crisis-center">Crisis Center</a> 
     </nav> 

     <div> 
      <my-app></my-app> 
     </div> 
    </body> 
</html> 

misiniz uygulama içindeki navigasyon için uygun mu?

Onları uygulamanın dışında tutmak istememin nedeni, Symfony değişkenlerine dayalı bir çok izin işleme (gizle/show) var, bu yüzden menülerle bununla ilgilenmeyi tercih ediyorum.

cevap

1

Bu iyi olurdu, ancak RouteConfig ve yönlendirici çıkışını kullanmanın temel nedeni, sayfanın bu bölümünü yenilemeden yönlendirici çıkışına yüklemesidir. Bu yüzden, normal çapa etiketleri kullanıyorsanız, artık bir SPA (tek sayfa uygulaması) olmayacağını bilin.

+0

Evet, ancak bunu yapma şeklim de sayfayı yenilemedi. Eğer 'href =' #/kriz-merkez 'ile bağlantıya tıklarlarsa, url değişikliğini almalı ve açısal sayfayı yönlendirici-çıkışına yüklemelidir. – xil3

+0

Köşeli 2, iki model URL'yi destekler: '/ kriz merkezi /' ve '#/kriz merkezi /'. "LocationStrategy" sağlayıcıları tarafından yapılandırılabilir: PathLocationStrategy ve HashLocationStrategy. Bu özellikten yararlanmak istiyorsanız o zaman [routerLink] gitmek için bir yol olacaktır. [Daha fazla bilgi] (https://angular.io/docs/ts/latest/guide/router.html#!#browser-url-styles) – creator