【问题标题】:Backbone Router Ignoring search route骨干路由器忽略搜索路由
【发布时间】:2013-02-21 15:36:21
【问题描述】:

需要帮助!

我正在尝试让我的 Backbone 路由器匹配此路由: http://localhost:5150/search_results?utf8=%E2%9C%93&keywords=&location=Norfolk%2C+VA&commit=Search

..没有任何工作。非常令人沮丧!
这是我第一次尝试 Backbone,所以建议很棒。

 '/search_results?*': 'search_results'
  # NOPE

 '/search_results?foo=:foo': 'search_results'
  # NOPE

 '/search_results?foo*': 'search_results'
  # NOPE

 '/search_results?*queryString': 'search_results'
  # NOPE

 'search_results?*queryString': 'search_results'
  # NOPE

 'search_results?*': 'search_results'
 # NOPE

 'search_results?foo=:foo': 'search_results'
 # NOPE

 'search_results?foo*': 'search_results'
 # NOPE

'/search_results': 'search_results'
 # NOPE SERIOUSLY??

 '/search_results': 'search_results'
 # WTF!!!!!!!!!!!!!!!!!!!

 ':search_results?*': 'search_results'
 # NOPE

 ':search_results?:querystring': 'search_results'
 # NOPE

【问题讨论】:

标签: javascript backbone.js routes


【解决方案1】:

你试过吗?它应该在路由中没有前导冒号、哈希或斜杠的情况下工作。

'search_results(?:queryString)': 'search_results'

【讨论】:

    【解决方案2】:

    Okey...据我所知,骨干路由通常通过#关键字检测路由路径。如果我错了,请纠正我。因此,要使事情在您的情况下发挥作用,请执行以下操作。

    1) 把#关键字放在#/search_results?....

    2) 现在将您的路线定义为“search_results?:queryString”

    这应该工作:)

    【讨论】:

    • 谢谢@Sadik,无论如何这可以与pushstate Backbone.history.start(pushState: true)一起使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多