2014-07-06 42 views
1

我正在使用semantic-ui模式来允许用户插入数据。它有一个onApprove回调函数,它允许你返回false来保持打开状态,如果有任何问题的话。我的数据被插入到数据库中,如果有任何错误,它将返回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 

显然匿名函数返回真/假到函数的上下文。什么是最好的方式返回到模态?

+0

您可以在任何情况下返回false,成功则使用'$关闭模式(’隐藏”)' – Joseph

回答

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

这是一个很酷的想法,但不起作用 isError:function(){ yourMethodWithAsync() return data.get('isError'); } 'return data.get('isError')'立即评估,因此将返回最后评估的结果,而不是当前评估的结果。 – Joseph