我正在使用angular2 alpha27和systemjs构建应用。它有一天应该是一个大应用程序,许多组件应该使用应用程序内的链接。目前,要确定路由器配置,我将其放入app.ts
:
@RouteConfig([
{ path: '/', as: 'overview', component: Overview },
{ path: '/requests', as: 'requests', component: Requests },
{ path: '/pane', as: 'pane', component: Pane }
])
问题:
如果我需要在其他组件中放置一个像这样的<a router-link="overview">Overview</a>
概述的链接,我必须将所有路由器注入导入到该组件并定义RouterConfig和导入组件(如上面提到的概述,窗格等)使链接工作。
首先,将所有这些导入到仅需要链接到概述的几个组件是没有任何意义的。例如。
其次,出于维护原因,我只想定义一次@RouterConfig
。
我的想法是创建一个服务,它将定义@RouterConfig
并使其可用于任何组件。但我不知道如何做到这一点。
请问,是否有人知道安排此类代码的最佳方式?
答案 0 :(得分:3)
不,你只需要像在主应用程序组件中建议一样使用@RouterConfig。要从一个组件链接到另一个组件,您需要导入RouterLink并将指令作为指令传递给View-annotation。
O(N)
如果您有兴趣,我已经完成了有关角度2路由的视频教程,请务必查看https://youtu.be/ZsGRiHSaOxM
答案 1 :(得分:0)
可扩展性不应成为问题。
使用new-angular-router,您可以将路由配置附加到类/控制器,而不是服务。这种方式实际上更灵活,因为您甚至可以在应用程序内的应用程序中使用应用程序,所有应用程序都有自己的路由。
将其想象成一棵树,树的任何分支都可以随时随地添加更多分支,无论他们需要去哪里。那些新的分支相互干扰。
如果路径是在一个地方而不是在需要时定义的,那么您的代码将变得比将路由附加到组件时更少模块化,然后可以在不破坏的情况下移动它们,与文件结构并行。
我的建议:在树中思考也许是大自然的意图。这个建议当然不适合所有用例,但却是最简单的行动方式。