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

Set*_*add 6 dart angular-dart

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

<a href="#/activities">Go</a>
Run Code Online (Sandbox Code Playgroud)

这似乎很脆弱.如果我更改路径或更改策略远离哈希更改,我需要更改所有链接.

我可以这样做:

<a ng-link="activities">Go</a>
Run Code Online (Sandbox Code Playgroud)

activities路由配置中路由的名称在哪里.

pav*_*lgj 4

现在您可以使用 router 为您生成这些 URL。

router.url('activities', {});
Run Code Online (Sandbox Code Playgroud)

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

router.url('activity', {'activityId', '12345'});
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

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

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