2013-10-07 2 views
3

항목보기가있는 레이아웃보기가 있습니다. 내 항목보기에서 저장 기능을 트리거하는 이벤트가 있습니다. 저장 기능을 사용하여 레이아웃을 캡처하는 다른 이벤트를 트리거하고 싶습니다.마리오네트 레이아웃 : 하위보기에서 이벤트 트리거

그래서 부모 레이아웃 기능을 트리거하고 싶은 onClickSave modelSaveSuccess에서 아래의 코드에서, 나는 this.methodInParent (시도)하지만

childView

define(["marionette", "underscore", "text!app/templates/client/form.html", "app/models/client"], function(Marionette, _, Template, Model) { 
    "use strict" 
    return Backbone.Marionette.ItemView.extend({ 
    events: { 
     "submit #saveClient": "onClickSave" 
    }, 
    onClickSave: function(ev) { 
     ev.preventDefault() 
     return this.model.save({}, { 
     success: function() { 
      console.log('success - trigger ') 
     }, 
     error: function(request, error) { 
      console.log(error.responseText) 
     } 
     }) 
    } 
    }) 
}) 

답변

4
작동 나던

무거운 커플 링을 도입하지 않고이를 수행하는 좋은 방법은 Backbone.Marionette.application을 사용하면 연결된 예제처럼 Marionette의 event aggregator을 사용하는 것입니다. 당신이 Backbone.Marionette.Application를 사용하지 않는 경우

// in your view 
... 
success: function() { 
    app.vent.trigger('myview:modelsaved'); 
} 
... 

// in your layout initialize() 
... 
app.vent.on('myview:modelsaved', function(){ 
    console.log('model saved in itemView'); 
}); 
... 

당신은 항상 당신의 자신의 Backbone.Wreqr.EventAggregator을 만들 수 있습니다.

+0

대단히 감사합니다! 10char – azz0r

+0

참고 : 이제 Marioette에 LayoutView에 'childEvents'가 있습니다. – backdesk

관련 문제