Custom Store/Load using a Json object, without using the "Storage" API
Question
I'm using the latest version, 0.15.9, and I'm new to this fantastic project! I'm currently learning a lot, starting from scratch. Please let me know if you prefere such questions on Stack Overflow or elsewhere.
I'm trying to export/import the content by myself, without using the "Storage" API. I see the store() function returns the exported content as a JSON object, and this is perfect for my needs! But how can I then programmatically import this JSON back? I think the load() function doesn't take such exported JSON object as a parameter, it forces you to use the "Storage" API, is that correct?
In other words, is there a way to programatically reset the state of a GrapeJs instance using the exported content, as a JSON object?
Answers (2)
I think I got it using:
let exportToLoad;
let editor = grapesjs.init({
// ...
storageManager: {
type: 'simpleStorage'
}
});
editor.StorageManager.add('simpleStorage', {
load(keys, clb, clbErr) {
if(exportToLoad) {
clb(exportToLoad);
}
},
store(data, clb, clbErr) {
return data;
}
});
function importFrom(exportContent) {
exportToLoad = exportContent;
editor.load(() => {});
},
Then:
let export = editor.store();
And:
importFrom(export);
That said, it doesn't feel totaly "right" to me. I would like a version of the functions where you can specify the exported Json object directly!
Using custom storage is actually the best way
I would like a version of the functions where you can specify the exported Json object directly!
Well, no one limits you to update your exportToLoad
Related Questions and Answers
Continue research with similar issue discussions.
Issue #759
Problems trying to load and save
Could someone please let me know the required format of the response from the storage save action? I originally posted an issue under the m...
Issue #1088
add new custom default class for map
can you please let me know how to add custom class in parent div of map iframe. when I try to add custom class in move function of 'grapesj...
Issue #2526
Custom storage : autoload not triggered
version : grapes.min.js 0.15.10 Hi, I'm using a custom storage to load & store json data from/to a textarea. Using a custom storage seems t...
Issue #3136
Create one more key in JSON
{ "type": "text", "status": "hovered", "content": "Insert your text here", "attributes": { "id": "ixx2" }, "activeOnRender": 0, "open": fal...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.