我的AngularDart应用程序中有很多命名路由。我用老式的方式创建链接,如下所示:
<a href="#/activities">Go</a>
这似乎很脆弱。如果我改变路径或改变策略远离散列更改,我需要更改所有链接。
我可以这样做:
<a ng-link="activities">Go</a>
其中activities
是路由配置的路由名称。
答案 0 :(得分:4)
现在您可以使用路由器为您生成这些网址。
router.url('activities', {});
第二个参数(应该是可选的)是参数值的映射。例如,如果您有/activity/:activityId
之类的路径,那么您可以执行以下操作:
router.url('activity', {'activityId', '12345'});
网址生成器也会尊重当前的路线状态,因此我们假设您有一条活跃路线,例如foo.bar.baz
,并且foo
已参数化,并且您以某种方式获得了条形路线(例如,通过{{ 1}}或查询RouteProvider
)然后您不需要知道router.root.getRoute('foo.bar')
路由参数的值来生成foo
的网址,您可以这样做:
baz
现在,您需要手动将生成的URL插入模板中:
Route bar = router.root.getRoute('foo.bar');
router.url('baz', {}, startingFrom: bar);