我有一个简单的测试设置:一个带有参数A
的路由parA
和一个带有参数B
的子路由parB
。
'A' : ngRoute
(
path : '/A/:parA',
enter: (RouteEnterEvent e)
{
print ('ENTERED A');
e.parameters.keys.forEach(print);
},
mount:
{
'B' : ngRoute
(
path: '/B/:parB',
enter: (RouteEnterEvent e)
{
print ('ENTERED B');
e.parameters.keys.forEach(print);
}
)
}
)
当我去
/#/A/1234/B/5678
时,我期望得到Entered B
parA
parB
相反,我得到了
Entered A
parA
Entered B
parB
这意味着在
B
中创建的组件的构造函数具有RouteProvider
的组件无法访问参数parA
。
最佳答案
似乎与此问题有关https://github.com/angular/route.dart/issues/85。
也许那里列出的解决方法也适用于您。
从问题复制:
As a current workaround I have a helper method that goes through all parent routes and adds them to the RouteEvent.
/// Adds the parameters of all parent routes to [e].
RouteEvent _addParentParams(RouteEvent e) {
// Function to recursively get the parents.
Function recursiveAddParentParams;
recursiveAddParentParams = (Route route) {
// Set the parent parameters to the event.
e.parameters.addAll(route.parameters);
if (route.parent != null) {
recursiveAddParentParams(route.parent);
}
};
recursiveAddParentParams(e.route.parent);
return e;
}
关于dart - Angular Dart中的分层路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910961/