【问题标题】:AngularDart routes: Optional parameterAngularDart 路由:可选参数
【发布时间】:2014-04-14 14:27:21
【问题描述】:

是否可以在不设置辅助路由的情况下设置可选路由参数?我想设置一个非常简单的 REST 类型接口,其路径定义如下:

reports/:reportType/:reportId

导航到reports/:reportType 将允许列出指定类型的所有已完成报告,导航到完整路径将显示该特定报告。第一部分我工作得很好,但是我无法确定如何将最后一段设为可选。

使用如下路由定义,只有在指定所有参数时才会调用enter方法:

void routesInit(Router router, RouteViewFactory view) {
  view.configure({
    'report' : ngRoute(
        // :rptId cannot be null (aka not provided)
        path: '/reports/:rptType/:rptId',
        enter: (RouteEnterEvent e) {
          print(e.parameters);
        })
  });
}

我在:rptId 周围尝试了标准类型的可选大括号,例如父母/reports/:rptType(/:rptId) 和方括号/reports/:rptType(/:rptId),但无济于事。

我还尝试了以下方法:

void routesInit(Router router, RouteViewFactory view) {
  view.configure({
    'report' : ngRoute(
        // :rptId cannot be null (aka not provided)
        path: '/reports/:rptType',
        enter: (RouteEnterEvent e) {
          print(e.parameters);
        },
        mount: {
          'report_type' : ngRoute(
            path: '/:rptId',
            enter: (RouteEnterEvent e) {
              print(e.parameters);
              print(e.route.parent.parameters);
          })
        })
  });
}

上面的问题是reportreport_type 输入函数都被调用了,所以我不能在那里正确设置视图,因为我需要在@ 的enter 函数中进行某种检查987654332@ route 来检测是否有子路由,我也不确定如何实现。

是否有更简单的方法来指定可选参数,或者我应该考虑完全改变我想用来减轻嵌套/子参数的路径? (例如:使用 reports/type/:rptTypereports/single/:rptId 之类的东西)

【问题讨论】:

标签: dart angular-dart angular-routing


【解决方案1】:

这种情况下的解决方案非常简单。我过度设计了解决方案。简单的修复,只需使用两个顶级路由。

void routesInit(Router router, RouteViewFactory view) {
  view.configure({
    'report' : ngRoute(
        path: '/reports/:rptType',
        enter: (RouteEnterEvent e) {
          print(e.parameters);
      }),
    'report_id': ngRoute(
        path: '/reports/:rptType/:rptId',
        enter: (RouteEnterEvent e) {
          print(e.parameters);
        })
  });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 2012-03-24
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多