我有两条具有不同哈希值和相同 View 模型的路由:
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=" }];
如何在详细信息 View 模型的 activate
方法中检测进入详细信息 View 模型的方式?我尝试迭代 router.routes
数组并查找 isActive() == true 的路由,但这在 activate 方法返回结果之前不可用。
此外,如果我将事件路由的检测添加到 View 模型的绑定(bind)方法中,则无论应用哪条路由,我都会使两条路由都处于事件状态:
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
最佳答案
看一下路由器的 activeInstruction 属性 -
router.activeInstruction();
您可以订阅它或创建一个计算结果来跟踪路线的变化。
关于javascript - 在 activate 方法中获取事件路由哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431830/