Backbone.Marionette Model.Destroy -Ausgabe
-
26-10-2019 - |
Frage
Ich habe ein sehr einfaches Backbone -Modell und eine sehr einfache Kollektion. Ich habe ein entsprechendes Backbone.
Die ItemView -Vorlage enthält eine "Entfernen" -Taste. Das Klickereignis der Schaltfläche Entfernen gibt ein Modell aus. Destroy (). Ein HTTP -Löschen wird dem Backend ausgestellt, es scheint jedoch zweimal ausgestellt zu werden, und da es beim zweiten Mal fehlschlägt, wird der Artikel nicht aus der Sammlung entfernt.
Alles andere funktioniert gut, nur der HTTP -Delete wird zweimal ausgegeben. Irgendeine Idee warum?
Ich benutze Backbone.Marionette Version 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
Lösung
MHMM .... Es scheint wirklich etwas mit einer eingebauten Veranstaltung oder Methode zu tun zu haben.
Versuchen Sie, Nicht -Standard -Namen für Ereignisse und Methoden zu verwenden.
Zum Beispiel können Sie versuchen, die Entfernungsmethode in 'Myrename' umzubenennen (Entfernung ist eine vordefinierte Rückgrat-Methode in Ansichten und Sammlungen).
so was:
# 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
hoffe das hilft