如何在保存事件后重置X可编辑字段

时间:2014-01-23 18:20:34

标签: meteor x-editable

这是https://stackoverflow.com/a/15121394/2247553中这个答案的后续问题,由于StackOverflow的奖励系统,我无法对此发表评论。

我的问题是,在使用Meteor请求收集更新后,如果服务器拒绝更新,如何将可编辑重置回其原始状态?

Template.editableTable.rendered = function() {

  $('#myParentTable').editable({
    selector: '.editable-click'
  });

  $('a.editable-click').unbind('save').on('save', function(e, params) {
    MyCollection.update({_id: 'myid'}, {$set: {key: 'val'}}, function(error, docs) {
      if (error) {
        // how do I reset X-editable here?
      }
    });
  });
};

1 个答案:

答案 0 :(得分:0)

根据FAQ,如果服务器端验证失败,则应返回非200状态。

我知道这并不能完全回答你的问题。我正在尝试做同样的事情,回归成功:虚假状态。它在某种程度上确实像API一样,所以发回200表示一切正常,所以它更新了值。请求是更新值,200状态是成功。

希望这是有道理的。如果您想澄清,请发表评论。 我的可编辑函数的错误参数代码如下......

error: function(response, newValue) {
    var json = false;
    try {
        json = JSON.parse(response.responseText);
    } catch (e) {
        json = false;
    }

    //Bootstrap message is my own thing.
    bootstrapMessage.init('#search_results');
    if(response.status === 500) {
        bootstrapMessage.show_message('There is a server error. Please contact our supoprt team.', 'danger');
    } else {
        if(json){
            bootstrapMessage.show_message(json.message, 'danger');
        }else{
            bootstrapMessage.show_message('Problem saving your change. Please refresh the page and try again or contact our support team', 'danger');
        }
    }
}