使用飞行员进行哈希路由

时间:2015-12-19 15:17:52

标签: javascript routing

我很好奇为什么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>

1 个答案:

答案 0 :(得分:0)

当路由配置中的额外嵌套级别is removed时,问题得以解决。

Aviator.setRoutes({
    target: this,
    '/': 'handleWelcomeRoute',
    '/outline': 'handleOutlineRoute'
})

该库将/视为终端端点。

相关问题