javascript - example - CollectionFS, Meteor.js, Summernote(WYSIWYG) y carga de archivos
summernote italic (1)
Estoy trabajando en un proyecto que usa Meteor.js, Summernote y Collection FS.
Primero, aquí está mi código.
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());
});
}
});
La imagen cuando se inserta ingresa con éxito a la URL especificada para el almacenamiento de la imagen. Aquí está el javascript CollectionFS.
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;
}
});
Me preguntaba si alguien podría guiarme en la dirección correcta. Me han dicho que la URL de devolución de llamada no está definida. Entonces, me pidieron que pruebe este código, usando una función setTimeout. Sin embargo, todavía no tuve suerte.
onImageUpload: function(files, editor, $editable) {
Images.insert(files[0], function (err, fileObj) {
setTimeout(function() {
editor.insertImage($editable, fileObj.url());
}, 300)
});
}
¿Alguien ha tenido éxito al usar summernote de esta manera en Meteor.js y collectionFS?
Si es así, por favor, ayúdame. Si esto se resuelve, publicaré un tutorial para muchos usuarios de meteor.js. Creo que será una gran contribución.
Además, incluso si no está utilizando Meteor.js o CollectionFS, si puede lanzar en dos centavos, sería muy apreciado.
¡Gracias!
Aquí hay otra solución además de usar 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();
}
});
});
}
});
}