Question

J'ai très simple modèle de colonne vertébrale et de la collecte. J'ai un correspondant backbone.marionette.CollectionView et backbone.marionette.ItemView et ils vivent dans un backbone.marionette.region.

Le modèle de ItemView contient un bouton « supprimer ». L'événement clic du bouton Supprimer émet un model.destroy (). est émis un HTTP SUPPRIMER au back-end, mais il semble être émis deux fois et parce que la deuxième fois, il échoue, l'élément n'est pas supprimé de la collection.

Tout le reste fonctionne bien, juste le HTTP SUPPRIMER étant émis deux fois. Toute idée pourquoi?

J'utilise la version v0.4.5 Backbone.Marionette

# 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
Était-ce utile?

La solution

mhmm .... il semble vraiment quelque chose lié à certains construit événement ou méthode.

Essayez d'utiliser des noms non standards pour les événements et les méthodes.

Par exemple, vous pouvez essayer de renommer la méthode remove dans « myRename » (supprimer est une méthode de colonne vertébrale prédéfini dans les vues et collections).

comme ceci:

 # 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

espérons que cette aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top