如何在angulardart中从概述页面路由到项目页面时创建好路径?

时间:2014-02-10 12:23:28

标签: dart angular-dart

我有一个非常常见的视图结构,其中包含列表页面和详细信息页面。我想创建一个非常简单的路径结构,如:

/leaderboard
/leaderboard/123

设置我创建的路由时:

  ..addRoute(
      name: 'leaderboard',
      path: '/leaderboard',
      enter: view('view/leaderboards.html'))
  ..addRoute(
      name: 'leaderboard',
      path: '/leaderboard/:leaderboardId',
      enter: view('view/leaderboard.html'));

导航到/leaderboard时一切正常,但导航到/leaderboard/123时,angulardart会抱怨它找到了多条路线但根本没有路由。

我目前的解决方案是为列表页面使用不同的路径(/leaderboards并在末尾添加's')但这不太好。

2 个答案:

答案 0 :(得分:1)

正如this answer of Angular Dart: matching rules for route path - implicit suffix wildcard?所述:

  

如果您担心两个路径之间的冲突,其中一个路径恰好是另一个路径的前缀,那么正确的方法是将最具体的路径放在第一位。

您还可以考虑使用hierarchical routes

附注:建议使用唯一的路径名称。

答案 1 :(得分:1)

接受的答案是正确的,但我总是担心使用排序来使路线正常工作。我建议做这样的事情:

..addRoute(
    name: 'leaderboard',
    path: '/leaderboard/all',
    enter: view('view/leaderboards.html'))
..addRoute(
    name: 'leaderboard',
    path: '/leaderboard/:leaderboardId',
    enter: view('view/leaderboard.html'));

我认为,使路径像'排行榜/所有'(或类似的东西)会让它更加健壮。