1

我在 Meteor 项目中遇到了 Summernote 的问题。在我提交表单后,内容是重复的。

这是我的标记:

{{#with entity}}
<div class="content">{{{content}}}</div>
<button>Edit</button>
{{/with}}

编辑按钮点击处理程序:

$('.content').summernote();

表单提交处理程序:

var $editor = $('.content'), content = $editor.code();
$editor.destroy();
Entity.update(this._id, { $set: { content: content } });

$editor.destroy()调用后,.content元素将返回到其原始的不可编辑状态,并具有更新的内容。但是在下一个 Tracker 刷新周期 Blaze 追加新entity.content<div class="content">,我看到内容重复。

一个简单的复制场景:

  1. 假设原始entity.contentHello, world!.
  2. 单击编辑并更改以Bye bye, world!提交表单。
  3. 我们有entity.contentequalsBye bye, world!但标记看起来像这样:

    <div class="content"><p>Bye bye, world!</p><p>Bye bye, world!</p></div>
    

我有一个想法如何解决这个问题,但我不喜欢它。我可以在提交表单时比较新内容和原始内容。如果内容没有改变,就不会有重复,所以上面的代码可以工作。但如果内容不同,请执行以下操作:$editor.destroy().html(''). 在下一个 Tracker 刷新 Blaze 将插入更新的内容。

有没有更好的解决方案?

4

1 回答 1

0

一样,所以我不使用$editor.destroy 但是

$('.note-editor').remove();
$editor.show();
于 2015-04-09T13:43:23.527 回答