我有非常简单的骨干模型和集合。我有一个相应的backbone.marionette.CollectionView和backbone.marionette.ItemView,他们住在backbone.marionette.region。
ItemView模板包含“删除”按钮。 remove按钮的click事件发出model.destroy()。向后端发出HTTP DELETE,但它似乎发出两次,因为第二次失败,该项目不会从集合中删除。
其他一切工作正常,只发出两次HTTP DELETE。知道为什么吗?
我正在使用Backbone.Marionette版本v0.4.5
# Model:
class User extends Backbone.Model
idAttribute: "_id"
# Collection
class Users extends Backbone.Collection
model: app.User
url: "/someUrl/Users"
# CollectionView
class UserListView extends Backbone.Marionette.CollectionView
tagName: "ul",
itemView: app.UserItemView
# ItemView
class UserItemView extends Backbone.Marionette.ItemView
template: "#item"
tagName: "li"
events:
"click .edit": "edit"
"click .remove": "remove"
remove: ->
@model.destroy()
edit: (e) ->
alert JSON.stringify @model
答案 0 :(得分:5)
mhmm ....它似乎与某些内置事件或方法有关。
尝试为事件和方法使用非标准名称。
例如,您可以尝试重命名'myRename'中的remove方法(remove是视图和集合中预定义的主干方法)。
像这样: # ItemView
class UserItemView extends Backbone.Marionette.ItemView
template: "#item"
tagName: "li"
events:
"click .edit": "edit"
"click .remove": "myRemove"
myRemove: ->
@model.destroy()
edit: (e) ->
alert JSON.stringify @model
希望这会有所帮助