考虑以下路由配置:
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/