模态回调中的异步操作

时间:2014-07-06 22:44:14

标签: javascript coffeescript meteor semantic-ui

我正在使用semantic-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返回到函数的上下文中。什么是将其恢复到模态的最佳方法?

1 个答案:

答案 0 :(得分:0)

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

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);
    }
    ...
  });
};