繁体   English   中英

CollectionFS,Meteor.js,Summernote(WYSIWYG)和文件上传

[英]CollectionFS, Meteor.js, Summernote(WYSIWYG) and file upload

我正在使用Meteor.js,Summernote和Collection FS进行项目。

首先,这是我的代码。

Template.postSubmit.rendered = function() {
   $('#summernote').summernote({
        height: 400,
        maxHeight:800,
        minHeight:250,
        onImageUpload: function(files, editor, $editable) {
        Images.insert(files[0], function (err, fileObj) {
            editor.insertImage($editable, fileObj.url());    
        });
      }
   });

插入图像后,它会成功进入指定的URL以进行图像存储。 这是CollectionFS javascript。

Images = new FS.Collection("images", {
  stores: [new FS.Store.FileSystem("images", {path: "~/img"})]
});

Images.allow({
  insert: function() {
    return true;
  },
  update: function() {
    return true;
  },
  remove: function() {
    return true;
  },
  download: function() {
    return true;
  }
});

我想知道是否有人可以引导我朝正确的方向前进。 有人告诉我未定义回调的URL。 因此,有人要求我使用setTimeout函数尝试此代码。 但是,我仍然没有运气。

onImageUpload: function(files, editor, $editable) {
        Images.insert(files[0], function (err, fileObj) {
          setTimeout(function() {
            editor.insertImage($editable, fileObj.url());
          }, 300)
        });
      }

有没有人通过在Meteor.js和collectionFS中以这种方式使用summernote成功?

如果是这样,请帮助我。 如果这个问题解决了,我将为许多meteor.js用户发布一个教程。 我相信这将是巨大的贡献。

另外,即使您没有使用Meteor.js或CollectionFS,也可以花两美分,这将是不胜感激的。

谢谢!

除了使用setTimeout之外,这是另一种解决方案:

Template.blogList.rendered = function() {
    var template = this;
    $('#summernote').summernote({
        height: 400,
        maxHeight:800,
        minHeight:250,
        onImageUpload: function(files, editor, $editable) {

            Images.insert(files[0], function (err, fileObj) {
                console.log("after insert:", fileObj._id);
                template.autorun(function (c) {
                  fileObj = Images.findOne(fileObj._id);
                  var url = fileObj.url();
                  if (url) {
                    $("#summernote").summernote("insertImage", fileObj.url(), "Image Title"); 
                    c.stop();
                  }
                });
            });

        }   
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM