質問

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")

そしてそれはうまくいきました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top