[英]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.