基本的なcoffeeScript実行時にイベントを発射していませんか?
-
14-10-2019 - |
質問
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