Backbone Bootstrap 模式句柄关闭

Backbone Bootstrap modal handle close

我有 bootstrap 模态。关闭并保存我可以处理的事件:

    events: {
        'click #back': 'close',
        'click #save': 'save',
        'keydown': 'keyHandler'
    },

但这是一个问题,当用户单击 .fade 并关闭模式时,我无法处理。如何处理这种点击模式关闭?

很难说出你想要完成什么,因为我们没有看到所有的代码。

只检查 .fade 点击是个坏主意。它太通用了,您可以在视图中的其他地方使用另一个 .fade。可以做的一件事是:

 events: {
    'click #back': 'close',
    'click .fade.modal': 'close',
    'click #save': 'save',
    'keydown': 'keyHandler'
},

这可行,但这是个坏主意,因为如果用户单击模态框上的任意位置,它就会关闭。

您也可以在模态上监听关闭事件。

var view = Backbone.View.extend({
  events: {
        'click #back': 'close',
        'click #save': 'save',
        'keydown': 'keyHandler'
   },
  initialize: function() {

  },
  render: function() {
    $('#myModal').modal()
    $('#myModal').on('hidden.bs.modal', this.closeModal)
  },
  closeModal: function(){
    $('#myModal').off('hidden.bs.modal')  //prevent memory leak
    this.close()
  }
});

您可以做的一件事是删除 "data-dismiss="modal"" 来自你的 HTML

<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

并单独处理点击事件并使用$('#your_modal_id').modal('hide');

关闭Modal

这样你就可以处理模态关闭的事情了。