首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用setTimeout时不保存流星集合

使用setTimeout时不保存流星集合
EN

Stack Overflow用户
提问于 2015-01-27 02:14:31
回答 1查看 170关注 0票数 0

我有一个在输入中保存contenteditable区域的事件:

代码语言:javascript
复制
Template.documentPage.helpers({
  contenteditable: function() {
    return '<div class="content" contenteditable="true">' + this.content + '</div>' // hack to avoid Blaze's code duplication bug in contenteditable elements
  } 
}) 

Template.documentPage.events({
  'input .content': function(e) {
    var savedSel = rangy.saveSelection()
    var document = $(e.target).html()

    setTimeout(function(){ 
      Documents.update(this._id, {$set: {content: document}}, function(){
        rangy.restoreSelection(savedSel)
        console.log('saved')
      })
    }, 3000)

模板:

代码语言:javascript
复制
<template name="documentPage">
  <div class="editor">
    <input class="title" type="text" value="{{title}}">
    {{{contenteditable}}}
  </div>
</template>

我确实在控制台中看到了saved,但是contenteditable div中的内容没有保存。当我删除setTimeout时,集合会保存。

编辑:

我试过Meteor.setTimeOut,而Session也不起作用:

代码语言:javascript
复制
'input .content': function(e) {
    Meteor.setTimeout(function(){
      Session.set('ready', true)
    }, 3000)

    Tracker.autorun(function(){
     if(Session.get('ready')){
      var savedSel = rangy.saveSelection()
      var document = $(e.target).html()
      console.log(document)
      Documents.update(this._id, {$set: {content: document}}, function(){
        rangy.restoreSelection(savedSel)
        console.log('saved')
        Session.set('ready', false)
      })
     }
    })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 04:07:20

在试着解决它大约30分钟后,我最终做到了这一点。

在事件内部

代码语言:javascript
复制
Template.example.events({
 Session.set('idExample',this._id);
Meteor.setTimeout(function(){
      Session.set('ready',true)
    },5000)
})

和外面的一些Tracker.autorun(function(){})

代码语言:javascript
复制
Tracker.autorun(function(){
if(Session.get('ready')){
  Documents.update(Session.get('idExample'), {$set: {content: document}}, function(){
    rangy.restoreSelection(savedSel)
    console.log('saved')
  })
}
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28162136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档