У меня очень простой базовый модель и коллекция. У меня есть соответствующий backbone.marionette.CollectionView и backbone.marionette.ItemView, и они живут в backbone.marionette.region.Backbone.Marionette model.destroy issue
В элементе ItemView содержится кнопка "удалить". Событие нажатия кнопки удаления вызывает модель.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
mhmm .... это действительно seemas то связанное с некоторыми встроенными в случае или метода. Попробуйте использовать нестандартные имена для событий и методов. Например, вы могли бы попытаться переименовать метод remove в 'myRename' (удалить предопределенный метод магистрали в представлениях и коллекциях) –
Daniele, вы абсолютно правы. Я на самом деле уже разработал решение (см. Мою конверсию с Derick Bailey по адресу https://github.com/derickbailey/backbone.marionette/issues/25). Но если вы хотите опубликовать свой предыдущий комментарий в качестве ответа, я с радостью отметю его как правильное, чтобы вы получили кредит. Еще раз спасибо. –
ОК, я рад, что мы решаем решение. Ответ следует в сообщении. спасибо –