3
アプリの外にangle2アプリのルータリンクを定義することが悪い習慣であるかどうかは疑問でした。またはそれを行うより良い方法がある場合。アプリテンプレートの外にルートリンクを角度2で定義する
angular2のドキュメントでは、ルーティングの例を示し、アプリケーションテンプレート内のリンクを定義します(下記参照)。
@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 { }
この例では、これらのリンクは<a [routerLink]="['CrisisCenter']">Crisis Center</a>
のリンクを定義しています。
しかし、私はこれをしなかった場合:アプリ内でのナビゲーションのために働く
<html>
<head></head>
<body>
<nav>
<a href="#/crisis-center">Crisis Center</a>
</nav>
<div>
<my-app></my-app>
</div>
</body>
</html>
でしょうか?
私はアプリの外に置いておきたい理由は、Symfonyの変数に基づいて(hide/show)多くの権限を扱っているからです。
ええ、私がやっているやり方では、ページを更新しないでしょう。彼らが 'href = '#/ crisis-center''でリンクをクリックすると、urlの変更を受け取り、ルーターアウトレットに角ページをロードするはずです。 – xil3
Angular 2はURLの2つのスタイル、 '/ crisis-center /'と '#/ crisis-center /'をサポートしています。これは 'LocationStrategy'プロバイダ経由で設定できます:' PathLocationStrategy'と 'HashLocationStrategy'。その機能を利用したい場合は、[routerLink]を使用してください。 [詳細情報](https://angular.io/docs/ts/latest/guide/router.html#!#browser-url-styles) – creator