我在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">
,我看到内容重复。
简单的复制方案:
entity.content
为Hello, world!
。Bye bye, world!
,然后提交表单。我们entity.content
等于Bye bye, world!
,但标记如下:
<div class="content"><p>Bye bye, world!</p><p>Bye bye, world!</p></div>
我知道如何解决这个问题,但我不喜欢它。我可以在表单提交时比较新内容和原始内容。如果内容未更改,则不会重复,因此上面的代码可以正常工作。但如果内容不同,请执行以下操作:$editor.destroy().html('')
。在下一个Tracker中,Blaze将插入更新的内容。
有没有更好的解决方案?
答案 0 :(得分:0)
同样,所以我不使用$editor.destroy
但
$('.note-editor').remove();
$editor.show();