나는 매우 간단한 백본 모델과 컬렉션을 가지고있다. 해당 backbone.marionette.CollectionView 및 backbone.marionette.ItemView가 있으며 백본 .marionette.region에 있습니다.Backbone.Marionette model.destroy issue
ItemView 템플릿에는 "제거"버튼이 있습니다. 제거 단추의 click 이벤트는 model.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
그런가을하는 데 도움이됩니다. 이벤트 및 메소드에 대해 비표준 이름을 사용하십시오. 예를 들어 'myRename'에서 remove 메소드의 이름을 바꿀 수 있습니다 (remove는 미리보기 및 콜렉션에서 미리 정의 된 백본 메소드입니다). –
Daniele, 당신은 틀림없이 옳습니다. 나는 실제로 해결책을 찾아 냈다. (Derick Bailey와의 나의 전환을 https://github.com/derickbailey/backbone.marionette/issues/25에서 보아라.) 그러나 당신이 대답으로 당신의 이전 코멘트를 게시하고 싶다면 나는 그것을 행복하게 틱 할 것이므로 당신은 신용을 얻는다. 다시 한번 감사드립니다. –
오케이, 나는 우리가 해결책을 내리게되어 기쁘다. 답은 게시물에서 따릅니다. 감사합니다 –