小智 46
这样做在ViewModel中注入路由器并使用方法导航(路由)
这是一个例子:
import {Router} from 'aurelia-router';
export class MyVM {
static inject() { return [Router]; }
constructor(router){
this.router = router;
}
someMethod(){
this.router.navigate("myroute");
}
}
Run Code Online (Sandbox Code Playgroud)
jef*_*f-h 18
我以为我会更新@Daniel Camarda的优秀答案.截至2016年2月,您可以使用Aurelia的inject装饰.此外,router命名问题已得到解决.
import {inject} from 'aurelia-framework';
import {Router} from 'aurelia-router';
@inject(Router)
export class MyVM {
constructor(router){
this.router = router;
}
someMethod(){
this.router.navigate("myroute");
}
}
Run Code Online (Sandbox Code Playgroud)
Eis*_*ect 17
快速了解相关信息:"路由器"的命名问题是我们在此处跟踪的内容:https://github.com/aurelia/router/issues/34 如果您稍后阅读此答案,此问题已经关闭,那么你应该能够安全地命名你的属性"路由器",如果你这样选择.
也许是一个稍微不同的用例,但由于它是如此相似而发布:输入视图后,基于参数,例如,我想重定向到另一个视图。这必须在activate()或中发生canActivate()。
在这种情况下,上面建议的navigation()和navigationToRoute()均不起作用。
但是return new Redirect('....'),有效的方法是从aurelia-router导入Redirect,如下所示:
canActivate(param) {
if (param.id == null)
return new Redirect('/viewWhichDoesntNeedParam')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16725 次 |
| 最近记录: |