如何在angular.dart中为路由参数分配默认值?

时间:2014-04-04 19:24:09

标签: dart angular-dart

考虑以下路线配置:

route
    ..addRoute(
      name: 'custom',
      defaultRoute: true,
      path: '/:param1/:param2',
      enter: view('view/template.html')
    );

我正在将路由器注入控制器并设置router.onRouteStart.listen,我正在通过router.activePath.last.parameters访问参数,现在,如果用户输入的路径中不存在param2,然后我想为param2分配一个默认值(也替换路线)。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

经过一番探索,在angular.dart.tutorial上找到了这个示例: https://github.com/angular/angular.dart.tutorial/blob/master/Chapter_06/lib/routing/recipe_book_router.dart#L19-L24

具有以下方式(根据我的示例代码进行更改):

route
    ..addRoute(
        name: 'default',
        defaultRoute: true,
        path: '/:param1',
        enter: (RouteEnterEvent e) => 
            router.go('custom', {
                    'param1': router.activePath.last.parameters['param1'],
                    'param2': 'defaultValue'},
                //[Optional, if mounted in a nested route]  
                //startingFrom: router.root.findRoute('custom_head'),
                replace: true))
    ..addRoute(
        name: 'custom',
        defaultRoute: true,
        path: '/:param1/:param2',
        enter: view('view/template.html')
    );

如果用户没有为param2提供值,则第一个路由被激活,这将为param2分配一个默认值,并通过替换之前的一个来强制更新url。