我的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路由配置中路由的名称在哪里.
现在您可以使用 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>