6

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

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

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

我可以做类似的事情:

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

activities我的路线配置中的路线名称在哪里。

4

1 回答 1

4

现在您可以使用路由器为您生成这些 URL。

router.url('activities', {});

第二个参数(可能是可选的)是参数值的映射。例如,如果您有这样的路径,/activity/:activityId那么您可以执行以下操作:

router.url('activity', {'activityId', '12345'});

URL 生成器还尊重路由的当前状态,因此假设您有一个活动路由,例如 foo.bar.baz,并且foo被参数化,并且您以某种方式获得了 bar 路由(例如 viaRouteProvider或 queried router.root.getRoute('foo.bar')),那么您不需要知道foo为 生成 URL 的路由参数baz,您可以执行以下操作:

Route bar = router.root.getRoute('foo.bar');
router.url('baz', {}, startingFrom: bar);

现在您需要手动将生成的 URL 插入到模板中:

<a href="{{ctrl.generatedUrl}}">link</a>

于 2014-01-21T18:35:45.383 回答