Backbone.Marionette question model.destroy
-
26-10-2019 - |
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
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