【问题标题】:Backbone Router Multiple Parameters; Second Parameter is Not Defined骨干路由器多参数;第二个参数未定义
【发布时间】:2014-11-05 22:53:11
【问题描述】:

不确定我是否遗漏了一些明显的东西。

我的路由器配置:

routes: {
    'report/:id': 'report',
    'report/:id/photo/:imageid': 'photo',
    'reportReadonly/:id': 'reportReadonly'
},

照片路由功能:

photo: function (id, imageid) {
    ....
},

我正在导航到的哈希:

/#report/11/photo/7

当我中断 photo 方法时,id 被正确分配(在本例中为 11),但 imageid 错误表明它没有定义。并不是说 imageid 的值等于 undefined 但未定义,因为该变量从未被声明过。希望我错过了一些简单的东西?

【问题讨论】:

  • 这是一个有效的例子:jsfiddle.net/2vbebb7b,做同样的事情吗?
  • 我唯一不同的是通过直接链接导航 查看照片 而不是使用 navigate.history ()。这不应该有什么不同,不是吗?
  • 错了,我的意思是history.navigate(..)
  • 你在你的url中使用#做什么?

标签: javascript backbone.js routes


【解决方案1】:

你的链接有一个前导/,这意味着

  • 如果您不取消默认操作,它将表现为正常链接
  • 它不会触发触发路由所需的 hashchange 事件

请改用<a href="#report/11/photo/7">View Photo</a>

还有一个演示http://jsfiddle.net/nikoshr/jbb836vp/1/

【讨论】:

  • 谢谢!现在按预期工作。
猜你喜欢
  • 2017-09-18
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2018-12-08
相关资源
最近更新 更多