模态回调中的异步操作



我使用语义ui模态来允许用户插入数据。它有一个onApprove回调,允许你在出现问题时返回false以保持模态打开。我的数据被插入到一个DB中,如果有任何错误,则返回false。如果在此异步操作期间出现错误,保持模态打开的最佳方法是什么?

这是我的代码(coffeescript):

$('#verification-modal')
.modal('setting', {
    detachable: false,
    onApprove: validateVerificationForm
    closable: false
})
 validateVerificationForm = () ->
      formData = $('.form').serializeArray()
      formatted = format($formData);
      ID_Details.insert(formatted, (errs, id) ->
         if errs
             false
         else
            true

显然匿名函数返回true/false到函数的上下文中。让它回到模态的最好方法是什么?

您可以使用本地响应变量:

var data = new ReactiveDict();
Template.modalTemplate.created = function() {
  data.set('isError', false);
};
Template.modalTemplate.helpers({
  isError: function() {
    return data.get('isError');
  },
});
var yourMethodWithAsync = function() {
  ...
  async(..., function(error) {
    if(error) {
      data.set('isError', true);
    }
    ...
  });
};

最新更新