我的AngularDart应用程序中有很多命名路由 . 我用老式的方式创建链接,如下所示:
<a href="#/activities">Go</a>
这似乎很脆弱 . 如果我更改路径或更改策略远离哈希更改,我需要更改所有链接 .
我可以这样做:
<a ng-link="activities">Go</a>
activities 是我的路线配置路线的名称 .
activities
现在,您可以使用路由器为您生成这些URL .
router.url('activities', {});
第二个参数(应该是可选的)是参数值的映射 . 例如,如果你有像 /activity/:activityId 这样的路径,那么你可以这样做:
/activity/:activityId
router.url('activity', {'activityId', '12345'});
URL生成器也遵循路由的当前状态,所以假设你有一个像 foo.bar.baz 这样的活动路由,并且 foo 被参数化,你以某种方式获得了bar路径(例如,通过 RouteProvider 或查询 router.root.getRoute('foo.bar') )然后你不需要知道 foo 路由参数的值为 baz 生成URL,您可以这样做:
foo.bar.baz
foo
RouteProvider
router.root.getRoute('foo.bar')
baz
Route bar = router.root.getRoute('foo.bar'); router.url('baz', {}, startingFrom: bar);
现在,您需要手动将生成的URL插入模板中:
<a href="{{ctrl.generatedUrl}}">link</a>
1 回答
现在,您可以使用路由器为您生成这些URL .
第二个参数(应该是可选的)是参数值的映射 . 例如,如果你有像
/activity/:activityId
这样的路径,那么你可以这样做:URL生成器也遵循路由的当前状态,所以假设你有一个像
foo.bar.baz
这样的活动路由,并且foo
被参数化,你以某种方式获得了bar路径(例如,通过RouteProvider
或查询router.root.getRoute('foo.bar')
)然后你不需要知道foo
路由参数的值为baz
生成URL,您可以这样做:现在,您需要手动将生成的URL插入模板中:
<a href="{{ctrl.generatedUrl}}">link</a>