首页 文章

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

提问于
浏览
6

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

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

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

我可以这样做:

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

activities 是我的路线配置路线的名称 .

1 回答

  • 4

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

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

    第二个参数(应该是可选的)是参数值的映射 . 例如,如果你有像 /activity/:activityId 这样的路径,那么你可以这样做:

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

    URL生成器也遵循路由的当前状态,所以假设你有一个像 foo.bar.baz 这样的活动路由,并且 foo 被参数化,你以某种方式获得了bar路径(例如,通过 RouteProvider 或查询 router.root.getRoute('foo.bar') )然后你不需要知道 foo 路由参数的值为 baz 生成URL,您可以这样做:

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

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

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

相关问题