这让我疯狂了。我无法让一个简单的路由器工作......
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.
但它没有帮助=(...
我确信这是一个简单的,但我有点卡在这里...... 请帮忙......
答案 0 :(得分:6)
您没有创建Backbone.Router的实例,因此Backbone.history.start()
将失败。
@app.myRouter = new MyRouter()
您发布的链接可以准确地告诉您问题所在:
TypeError:无法调用undefined **
的方法'start'嗯,由于某些原因,Backbone.history未定义,因此没有启动方法。事实证明,Backbone.js创建了一个 Backbone.History(大写'H')的一个实例,叫做Backbone.history (小写'h') 一旦创建了控制器 至少指定一条路线。这是有道理的,作为历史 只有在有回应的路线时才需要管理。