С canvas.toJSON();
Я не могу экспортировать пользовательские атрибуты холста.
Я должен использовать прототип холста.Но я не знаю, как построить структуру прототипа.
Существующие (разрешенные) данные:
var clipFath = this.clipPath, data = {
version: fabric.version,
objects: this._toObjects (methodName, propertiesToInclude),
};
Мне нужно это следующим образом:
var clipFath = this.clipPath, data = {
version: fabric.version,
objects: this._toObjects (methodName, propertiesToInclude),
custom_settings_json: this.custom_settings /* <-- */
};
Оригиналsource line 7698 :
В следующем примере я могу добавить пользовательские настройки для объектов Fabric.Мне нужна похожая структура для холста. Источник
fabric.Object.prototype.toObject = (function (toObject) {
return function (propertiesToInclude) {
propertiesToInclude = (propertiesToInclude || []).concat(
['custom_attr_1','custom_attr_2'] /* <- */
);
return toObject.apply(this, [propertiesToInclude]);
};
})(fabric.Object.prototype.toObject);
Я попытался установить холст, как показано ниже
var canvas = new fabric.Canvas('canvas');
var custom = {
"data1": 1,
"data2": 2
}
canvas.custom_settings_json = custom;
var json_data = canvas.toJSON();
console.log(json_data);
// console log:
{
"version":"2.4.1",
"objects":[{.....}],
"custom_settings_json": {
"data1": 1,
"data2": 2
}
}
Но я получаю этот результат без custom_settings_json
в toJSON
выводе.
// console log:
{
"version":"2.4.1",
"objects":[{.....}]
}