J'utilise des attributs personnalisés lorsque je crée mes objets. Par exemple dans ce cas "nom" et "icône":FabricJS et AngularJS - copier et coller un objet avec un attribut personnalisé
$scope.addRoundRect = function() {
var coord = getRandomLeftTop();
var roundrect = (new fabric.Rect({
left: coord.left,
top: coord.top,
fill: '#' + getRandomColor(),
width: 250,
height: 250,
opacity: 1,
scaleX: 1,
scaleY: 1,
angle: 0,
rx: 10,
ry: 10,
strokeWidth: 0,
name: "Rounded Rectangle",
icon: "crop-square"
}));
canvas.add(roundrect).setActiveObject(roundrect);
};
Ceci est ma fonction Copier/Coller. Comme vous pouvez le voir, je l'ai déjà essayé de coller les attributs pertinents - bu, je pense qu'ils sont tout simplement pas clonés avec l'objet:
function copy() {
canvas.getActiveObject().clone(function (cloned) {
_clipboard = cloned;
});
}
function paste() {
_clipboard.clone(function (clonedObj) {
canvas.discardActiveObject();
clonedObj.set({
left: clonedObj.left + 10,
top: clonedObj.top + 10,
evented: true,
name: clonedObj.name,
icon: clonedObj.icon,
});
if (clonedObj.type === 'activeSelection') {
clonedObj.canvas = canvas;
clonedObj.forEachObject(function (obj) {
canvas.add(obj);
});
clonedObj.setCoords();
} else {
canvas.add(clonedObj);
}
canvas.setActiveObject(clonedObj);
canvas.requestRenderAll();
});
Pour faire court: est-il un moyen de cloner et coller également cet attribut sans avoir à modifier la source (c'est-à-dire implémenter un attribut personnalisé à part entière dans la sérialisation JSO)?
- merci encore! Mais en utilisant ceci dans mon contrôleur (copie collée ici) je reçois "controller.js: 267 Unrefried ReferenceError: customProperties n'est pas défini" tandis que copy et "Uncaught ReferenceError: _clipboard n'est pas défini" lors du collage de l'objet. –
- merci encore! Mais en utilisant ceci dans mon contrôleur (copie collée ici) je reçois "controller.js: 267 Unrefried ReferenceError: customProperties n'est pas défini" tandis que copy et "Uncaught ReferenceError: _clipboard n'est pas défini" lors du collage de l'objet. En ce qui concerne le clone dans la fonction de collage. Voir ce violon que nous avons travaillé avec @asturur et (mais maintenant je ne sais vraiment pas où je devrais ajouter le "customProperties" dans ce contexte ... Fiddle: https://jsfiddle.net/wta4pdpz/14/ –
- Désolé mon pote, je suis un peu surchargé! J'ai juste raté une ligne de code ... ;-(Copier et coller fonctionne maintenant, il faut maintenant vérifier plusieurs copies (la solution dans notre violon) .... MERCI !!! –