是否有更好的方法在与AngularDart的链接中按名称引用路由?

时间:2014-01-11 19:48:01

标签: dart angular-dart

我的AngularDart应用程序中有很多命名路由。我用老式的方式创建链接,如下所示:

<a href="#/activities">Go</a>

这似乎很脆弱。如果我改变路径或改变策略远离散列更改,我需要更改所有链接。

我可以这样做:

<a ng-link="activities">Go</a>

其中activities是路由配置的路由名称。

1 个答案:

答案 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);