我有一个best_in_place
表格,我正在对提交的数据进行一些后处理。这是一系列时间,我在保存之前将它们格式化为一致的格式。保存后如何让更新后的值显示在表单上?
问问题
846 次
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 回答