我很好奇为什么this fiddle中的代码不起作用。
我正在尝试使用哈希路由设置Aviator router。
当我点击按钮时,哈希变化成功,但函数handleOutlineRoute
永远不会被调用。
这是我的javascript:
class Application {
init() {
this.configureRouter()
this.setupRoutes()
this.dispatch()
}
configureRouter() {
Aviator.pushStateEnabled = false
}
dispatch() {
Aviator.dispatch()
}
setupRoutes() {
Aviator.setRoutes({
'/': {
target: this,
'/': 'handleWelcomeRoute',
'/outline': 'handleOutlineRoute'
}
})
}
handleWelcomeRoute() {
alert('welcome')
}
handleOutlineRoute() {
alert('outline')
}
}
(function() {
const app = new Application()
app.init()
$('a.nav').attr('href', `#${Aviator.hrefFor('/outline')}`)
})()
和HTML:
<a class="nav"> Click Me </a>
答案 0 :(得分:0)
当路由配置中的额外嵌套级别is removed时,问题得以解决。
Aviator.setRoutes({
target: this,
'/': 'handleWelcomeRoute',
'/outline': 'handleOutlineRoute'
})
该库将/
视为终端端点。