fan*_*ncy 31 javascript coffeescript backbone.js
我Cannot call 'start' of undefined打电话时得到......
Backbone.history.start()
Run Code Online (Sandbox Code Playgroud)
运行一些检查时,Backbone返回对象,但Backbone.history返回undefined.
可能是什么原因造成的?
谢谢
wes*_*bos 51
你在控制器上有路线吗?只有指定了至少一个路由后,Backbone才会创建历史记录.
更多:
TypeError:无法调用未定义**的方法'start'
嗯,由于某种原因Backbone.history是未定义的,所以没有启动方法.事实证明,一旦创建了一个至少有一个路由指定的控制器,Backbone.js就会创建一个名为Backbone.history(小写'h')的Backbone.History(大写'H')实例.这是有道理的,因为历史管理只有在有路由响应时才需要.
http://tinnedfruit.com/2011/04/26/testing-backbone-apps-with-jasmine-sinon-3.html
小智 10
我遇到了同样的错误.
当您不创建路由器实例时会发生这种情况:
var routerInstance = new blogRouter();
Run Code Online (Sandbox Code Playgroud)
如果您正在使用CoffeeScript并且您的路由器是使用带有构造函数方法的CoffeeScript类关键字定义的,请仔细检查您是否在构造函数的定义中调用了super.这解决了Backbone.history的问题对我来说是空的.
class AppRouter extends Backbone.Router
constructor: (options) ->
super(options)
# other initialization code
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10305 次 |
| 最近记录: |