【问题标题】:Trouble to get Backbone.Router to work with coffeescript无法让 Backbone.Router 与 coffeescript 一起工作
【发布时间】:2012-11-09 14:20:02
【问题描述】:

这让我现在快疯了。我无法让一个简单的路由器工作......

    jQuery ->
        class MyRouter extends Backbone.Router
            routes:
              ""            :"index"
              "/list"       :"showList"
              "/item/:id"   :"showItem"
            index: =>
              alert "index"
            showList: =>
              alert "get the lists"
            showItem: (id)=>
              alert "the item #{id}"

         @app = window ? {}
         @app = window.app ? {}
         @app.myRouter = MyRouter
         Backbone.history.start()

我总是收到这个错误: index.js:50Uncaught TypeError: Cannot call method 'start' of undefined

我看到了这个:Cannot call 'start' of undefined when starting backbone.js history.

但这并没有帮助 =(...

我相信这很容易,但我有点卡在这里...... 请帮忙...

【问题讨论】:

    标签: backbone.js coffeescript


    【解决方案1】:

    您没有创建 Backbone.Router 的实例,因此 Backbone.history.start() 将失败。

    @app.myRouter = new MyRouter()
    

    您发布的链接可以准确地告诉您问题所在:

    TypeError: 无法调用未定义的方法“start”**

    嗯,出于某种原因,Backbone.history 是未定义的,因此没有启动方法。事实证明,Backbone.js 创建了一个 Backbone.History(大写“H”)的实例称为 Backbone.history (小写“h”)创建控制器后 至少指定了一条路线。这是有道理的,因为历史 仅当有响应的路由时才需要管理。

    【讨论】:

    • @silverfighter 我已经阅读了您链接的那篇确切的帖子,试图弄清楚为什么我的路由器前几天也不工作。 :)
    猜你喜欢
    • 2012-07-24
    • 2020-02-29
    • 2011-04-25
    • 2014-11-22
    • 2014-05-15
    • 2010-10-16
    • 2019-11-27
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多