我正在使用collection.create方法添加模型。我已经覆盖了model.validate方法并弹出错误窗口,我得到了正确的错误消息。如何处理从backbone.js中的collection.create()触发的多个无效事件
一切似乎都很好,直到我第四次点击保存按钮三分之一。每个先前的无效模型都会触发无效事件。我注意到收集没有清理后无效事件发射,所以我添加了line.collection.pop()希望这将解决它。
无效事件仍然被关闭n次。 N是我重新加载应用程序之前尝试创建新模型的次数。我发现如果传入的模型上有一个集合对象,我应该只显示错误消息。现在一切正常,但是这看起来有点j。。
我试图在无效事件方法内添加model.stopListening()。虽然没有运气。我认为这与我没有完全清理这些部分或无效的模型有关。
createNewAsset: (event) ->
@collection.on "invalid", (model, error) =>
console.log "invalid fired"
unless model.collection is undefined
errView = new MyApp.Views.Error(collection: error)
$("body").append(errView.render().el)
model.collection.pop()
@collection.on "sync", ->
Backbone.history.navigate("assets", true)
@collection.create
name: @$el.find("#new_asset_name").val()
澄清更新:
上面的代码适用于最终用户,但我有一些僵尸模型或集合发射了事件的n个。 N是用户点击保存按钮的次数。