可以說,我有簡單的應用程序,它是用Backbone.Marionette創建的。 爲了簡單起見,假設我已經有了某個模型的「顯示」視圖(這裏沒有關係),在那裏我可以點擊「添加新的」,在「模式」中顯示「新」視圖「窗口。重新附加Marionette.View和事件處理
我顯示那裏簡單的形式,(驗證後)發送到我的API。在此期間,我正在顯示其他視圖(顯示諸如「正在保存,請稍候...」等)。
如果成功,我將關閉此模式窗口,並且一切正常。
但是(這是棘手的部分):我想處理情況,當從某種原因模型沒有保存(API臨時停機,連接問題,競爭條件等),並顯示相同的視圖(I認爲它應該很容易) - 但是,當我這樣做時,事件不再被處理(即:submitForm
行動不執行第二次:()
這是我的我的證明這個概念:
class MyApp.SampleView extends Marionette.View
events:
"submit form": "submitForm"
submitForm: (event) ->
event.preventDefault()
data = $(event.currentTarget).serializeObject()
model = SampleModel.new(data)
if model.isValid()
MyApp.popupRegion.show(SavingPopup)
savePromise = model.save()
savePromise.success =>
@close()
@displayNotification("Model has been added")
savePromise.error =>
@displayNotification("Something went wrong, please try again")
MyApp.popupRegion.show(this) # displays correct view
# but does not handle events :(
TL; DR版本:
如何以這樣的方式將視圖重新附加到區域,以便我的事件仍將被處理?