2012-02-16 4 views
3

私は非常にシンプルなバックボーンモデルとコレクションを持っています。私は対応するbackbone.marionette.CollectionViewとbackbone.marionette.ItemViewを持っていて、彼らはbackbone.marionette.regionに住んでいます。バックボーン。マリオネットmodel.destroy発行

ItemViewテンプレートには「削除」ボタンがあります。削除ボタンのクリックイベントは、model.destroy()を発行します。バックエンドに対してHTTP DELETEが発行されますが、2回発行されたように見えます。また、2回目に失敗すると、そのアイテムはコレクションから削除されません。

他のすべてが正常に動作しています.HTTP DELETEは2回発行されます。どんな考え?

は、私が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 
+0

mhmmに役立ちます。イベントとメソッドに非標準の名前を使用してみてください。たとえば、 'myRename'のremoveメソッドの名前を変更しようとすることができます(removeはビューやコレクションで事前定義されたバックボーンメソッド) –

+0

Daniele、あなたは間違いなしです。私は実際にはすでに解決策を研究していました(Derick Baileyの私のコンバートをhttps://github.com/derickbailey/backbone.marionette/issues/25でご覧ください)。しかし、あなたが以前のコメントを回答として投稿したいのであれば、それを喜んで正確にチェックして、クレジットを得るでしょう。再度、感謝します。 –

+0

大丈夫、私たちは解決策を見て満足しています。その答えはポストに続きます。ありがとう –

答えて

5

mhmmを使用しています....それは本当にイベントまたはメソッドに建てられたいくつかに関連する何かです。

イベントとメソッドに非標準の名前を使用してください。

たとえば、 'myRename'のremoveメソッドの名前を変更しようとすることができます(removeは、ビューとコレクションで事前定義されたバックボーンのメソッドです)。このような

# 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 

希望は、これはそれが本当にイベントまたはメソッドに建てられたいくつかに関連する何かをseemas ....

+3

FWIW:この問題は、Marionetteの問題リストに記載されています。そのメソッドを呼び出すと、その原因となった理由を詳しく説明しています:https://github.com/derickbailey/backbone.marionette/issues/25 –

+0

.. Marionetteのレポが移動したので、Derickがリンクしている問題もあります。今はhttps://github.com/marionettejs/backbone.marionette/issues/25です – alxndr

関連する問題