0

私はbackbone.marionetteを0.9.3からv1.0.0-beta4に更新しましたが、次のコードが壊れています。

PlansApp.CompositeView  = Backbone.Marionette.CompositeView
PlansApp.ItemView = Backbone.Marionette.ItemVie

PlansApp.Plans.PlansList = do ({PlansApp, Backbone} = window) ->
  PlansList = {}

  PlansListItemView = PlansApp.ItemView.extend
    initialize: ->
      @bindTo this.model, "change", this.modelChanged

    modelChanged: (model, value)->
      this.render()
      this.$el.effect("highlight", {}, 6000)
      window.addTeachMeHandlers() if model.get 'IsFirst

特にthis.render()でエラーメッセージが表示されます。

Uncaught TypeError:Object[objectObject]にはメソッド'render'がありません

このコードは、以前はアップグレード前に機能していました。

ソースを見ると、ItemViewにはまだrenderメソッドがあるので、コンテキストが間違っているか、bindToが変更されている可能性があります。

アンダースコアも1.3から1.4.1にアップグレードしました

4

1 に答える 1

0

以前のバージョンの1つでは、Backbone.StickItプラグインとの競合を回避するために、EventBinderをビューにアタッチする方法を変更する必要がありました。この変更は、イベントバインディングのデフォルトのコンテキストがビューではなくなったことを意味し、を呼び出すときに4番目のパラメーター(コンテキスト)を指定する必要がありますbindToonこれは、Backboneの方法と同じように機能します。

@bindTo this.model, "change", this.modelChanged, this

于 2012-11-06T12:52:46.133 に答える