Магистральная модель - PullRequest
       10

Магистральная модель

3 голосов
/ 16 февраля 2012

У меня очень простая базовая модель и коллекция.У меня есть соответствующие backbone.marionette.CollectionView и backbone.marionette.ItemView, и они живут в backbone.marionette.region.

Шаблон ItemView содержит кнопку «удалить».Событие щелчка на кнопке удаления выдает model.destroy ().HTTP-УДАЛЕНИЕ выдается бэкэнду, но кажется, что оно выдается дважды, и поскольку во второй раз происходит сбой, элемент не удаляется из коллекции.

Все остальное работает нормально, только 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 Ответ

5 голосов
/ 17 февраля 2012

мммм .... это действительно кажется чем-то связанным с каким-то встроенным событием или методом.

Попробуйте использовать нестандартные имена для событий и методов.

Например, вы можете попытаться переименовать метод удаления в «myRename» (удаление - это предварительно определенный магистральный метод в представлениях и коллекциях).

как это:

 # 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

надеюсь, это поможет

...