Backbone错误,Object add没有方法'bind'

时间:2011-09-19 13:10:45

标签: javascript backbone.js coffeescript

items.bind 'add', (item) => 
    @addOne(item)

addOne: (item) ->
    view = new ListItem({model: item})

..视图的初始化会引发此错误:TypeError:Object add没有方法'bind'

class ListItem extends Backbone.View

    el: $ '#wrap'

    template: $ '#listItem'

    initialize: () ->
        @model.bind 'change', @render, @ 
        @model.bind 'destroy', @remove, @

    render: () ->
        @el.append @template.tmpl @model.toJSON()

编辑:在设置视图结果之前记录项目...

Item
_callbacks: Object
_changed: false
_changing: false
_escapedAttributes: Object
_previousAttributes: Object
attributes: Object
cid: "c2"
collection: Items
__proto__: ctor

但如果我在初始化视图时记录@model,则它是一个名为add

的空对象

编辑2:item.bind未在addOne中定义,但不确定为什么

1 个答案:

答案 0 :(得分:1)

您的代码看起来很好,但您添加到items的对象似乎不是有效的模型。您为items.add电话使用了哪些代码?验证运行items.add(new Backbone.Model)时是否收到错误。

也许你做过

items.add [{foo: bar}]

但是在modelCollection上设置items属性Backbone.Model是{{1}}子类以外的其他实例?