Summernote与流星内容重复

时间:2015-02-13 05:07:34

标签: meteor summernote

我在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.content等于Bye bye, world!,但标记如下:

    <div class="content"><p>Bye bye, world!</p><p>Bye bye, world!</p></div>
    
  4. 我知道如何解决这个问题,但我不喜欢它。我可以在表单提交时比较新内容和原始内容。如果内容未更改,则不会重复,因此上面的代码可以正常工作。但如果内容不同,请执行以下操作:$editor.destroy().html('')。在下一个Tracker中,Blaze将插入更新的内容。

    有没有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

同样,所以我不使用$editor.destroy

$('.note-editor').remove();
$editor.show();