我刚刚将主干.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() 并带有错误消息:
未捕获的类型错误:对象 [对象对象] 没有方法“渲染”
此代码以前用于升级之前的工作。
从源码看,ItemView 还是有 render 方法的,所以我猜测上下文是错误的或者可能是 bindTo 已经改变了。
我也将下划线从 1.3 升级到 1.4.1