2014-07-06 51 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