我有两条不同哈希和相同视图模型的路线:
var routes = [
{ route: '', moduleId: 'home', title: 'Home', nav: 1 },
{ route: 'details(/:id)', moduleId: 'details', title: 'Details', nav: 2, hash: '#details' },
{ route: 'access_token=*token', moduleId: 'details', title: 'Details', nav: false, hash: "#access_token=" }];
如何在activate
详细信息视图模型方法中检测我详细查看模型的方式?我试图迭代router.routes
数组并找到isActive()== true的路由,但是这个方法在activate方法返回结果之前不可用。
此外,如果我将活动路线的检测添加到binding
视图模型方法中,无论应用哪条路线,我都会激活两条路线:
function binding() {
router.routes.forEach(function (route) {
console.log('Route ' + route.hash + " isActive:" + route.isActive());
});
}
控制台日志:
Route # isActive:false details.js:37
Route #details isActive:true details.js:37
Route #access_token= isActive:true
答案 0 :(得分:4)
查看路由器的activeInstruction属性 -
router.activeInstruction();
您可以订阅它或创建计算结果以跟踪路线中的变化。