在Angular 2

时间:2016-03-31 17:20:18

标签: javascript angularjs typescript angular angular2-routing

我只是想知道在应用程序之外定义angular2 app路由器链接是不好的做法;或者如果有更好的方法。

在所有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变量的权限处理(隐藏/显示),所以我宁愿用它来管理菜单。

1 个答案:

答案 0 :(得分:1)

这没关系,但使用RouteConfig和router-outlet的主要原因是因为它将页面的这一部分加载到路由器插座而不刷新页面。所以,只要知道如果你使用普通的锚标签,它将不再是SPA(单页面应用程序)。