Backbone.Marionette model.destroy问题

时间:2012-02-16 15:47:39

标签: backbone.js marionette

我有非常简单的骨干模型和集合。我有一个相应的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

1 个答案:

答案 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

希望这会有所帮助