我有两条具有不同哈希值和相同视图模型的路线:
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 查找路由,但这在激活方法返回结果之前不可用。
另外,如果我在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