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

标签 dart angular-dart

考虑以下路由配置:

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

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

最佳答案

经过更多的探索,在 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。

关于dart - 如何为 angular.dart 中的路由参数分配默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871434/

相关文章:

flutter - 为什么Flutter偏向于继承而不是继承?

dart - 如何在输入有效的 paper-input 属性上进行监听

angular - 在Angular2 Dart中显示嵌套的子级子组件

angularjs - 在 Angular Dart 组件的构造函数中将键和值分配给作用域

dart - 将Dart代码格式设置为html

arrays - 在 Flutter 中编码/解码复杂的 Json

listview - Flutter 仅按需填充 ExpansionTile 数据(一个 Future 对象),而不是在初始化时

dart - 在Angular Dart中使用SASS

angular - Angular2 Dart 中没有 LocationStrategy 错误消息的提供程序

Flutter:用 child 的 GestureDetector 覆盖 'PageView' 滚动手势