3

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とバックボーンを一緒に見つけることができる唯一の例に従ってきましたhttps://github.com/bnolan/Backbone-Mobile/blob/master/application.coffee

ただし、上記のビュー コードに super を追加すると、未定義のエラーが発生しますが、彼のコードでは発生しません。

4

2 に答える 2

5

クラスには多くの作業を行うBackbone.View独自のクラスがあり、それをオーバーライドして呼び出していません。悪い。constructorsuper

代わりに、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>"
    )
于 2010-12-30T18:53:54.917 に答える
2

同様の問題 (イベントが発生しない) があり、@el を設定していないことが原因であることがわかりました。私はそれを設定しました:

@el: $("#content")

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

于 2011-11-30T19:03:59.023 に答える