0

我有一个best_in_place表格,我正在对提交的数据进行一些后处理。这是一系列时间,我在保存之前将它们格式化为一致的格式。保存后如何让更新后的值显示在表单上?

4

1 回答 1

-1

我只能找到一种稍微笨拙的方式来做到这一点。首先,将display_as表单助手上的参数设置为与正在显示的实际属性相同。

= best_in_place @post, :name, type: :input, :display_as => :name

然后,为best_in_place:success

$(document).on('best_in_place:success', function(e, data) {
  $(this).data('bestInPlaceEditor').original_content = data['display_as'];
});

保存帖子并name更新属性后,新值将作为 JSON 返回:它看起来像{"display_as": "updated post name"}. 此 javascript 获取返回的值并将其设置为 BIP 编辑器的original_content属性。当 BIP 呈现输入时(当您单击帖子名称进行编辑时),将original_content显示 的值。

使用 best_in_place 2.1.0 测试。best_in_place.js 中的相关代码为:

if (response !== null && response.hasOwnProperty("display_as")) {
  this.element.attr("data-original-content", this.element.text());
  this.original_content = this.element.text();
  this.element.html(response["display_as"]);
}

this.element是未编辑字段时显示的内容。因此,它被设置为与什么original_content(渲染时得到的值)不同的值。我不确定这是有意的还是 best_in_place 中的错误。

于 2013-03-05T09:29:35.760 回答