题
我遇到了真正的问题,可以使用coffeescript和zepto.js编写简单的backbone.js应用程序
这是最简单的骨干视图,但事件却没有开火。我在控制台上也没有错误?我要去哪里?
#Main view
class AppView extends Backbone.View
constructor: ->
@el = $("#books")
@template = _.template("<div>New Item <a href='' id='addNew'> add new item</a></div>")
events: {
"click" : "createNew"
}
render: =>
@el.html(@template())
createNew : ->
console.log "new"
#Onload
$(document).ready ->
view = new AppView
view.render()
我一直在跟随唯一可以找到Coffeescript和Backbone的例子 https://github.com/bnolan/backbone-mobile/blob/master/application.coffee
但是,如果我在上面的视图代码中添加超级,我会收到一个未定义的错误,他的代码不会。
解决方案
班上 Backbone.View
有它自己的 constructor
那做很多工作,您正在覆盖它,而不是打电话 super
. 。坏的。
反而, Backbone.View
使您能够定义自己的构造函数函数称为 initialize
. 。在那里执行所有设置。 Backbone.View#constructor
将会通知 initialize
.
#Main view
class AppView extends Backbone.View
initialize: ->
@el = $("#books")
@template = _.template(
"<div>New Item <a href='' id='addNew'> add new item</a></div>"
)
其他提示
我遇到了类似的问题(事件没有开火),发现问题是由于未设置@EL所致。我设置了:
@el: $("#content")
它起作用了。
不隶属于 StackOverflow