mirror of
https://github.com/konvajs/konva.git
synced 2026-03-03 16:58:33 +08:00
black list for clone function. fix #583
This commit is contained in:
11
src/Node.js
11
src/Node.js
@@ -22,6 +22,7 @@
|
|||||||
TRANSFORM = 'transform',
|
TRANSFORM = 'transform',
|
||||||
UPPER_STAGE = 'Stage',
|
UPPER_STAGE = 'Stage',
|
||||||
VISIBLE = 'visible',
|
VISIBLE = 'visible',
|
||||||
|
CLONE_BLACK_LIST = ['id'],
|
||||||
|
|
||||||
TRANSFORM_CHANGE_STR = [
|
TRANSFORM_CHANGE_STR = [
|
||||||
'xChange.kinetic',
|
'xChange.kinetic',
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
'transformsEnabledChange.kinetic'
|
'transformsEnabledChange.kinetic'
|
||||||
].join(SPACE);
|
].join(SPACE);
|
||||||
|
|
||||||
|
|
||||||
Kinetic.Util.addMethods(Kinetic.Node, {
|
Kinetic.Util.addMethods(Kinetic.Node, {
|
||||||
_init: function(config) {
|
_init: function(config) {
|
||||||
var that = this;
|
var that = this;
|
||||||
@@ -1181,9 +1183,14 @@
|
|||||||
clone: function(obj) {
|
clone: function(obj) {
|
||||||
// instantiate new node
|
// instantiate new node
|
||||||
var className = this.getClassName(),
|
var className = this.getClassName(),
|
||||||
node = new Kinetic[className](this.attrs),
|
attrs = this.attrs,
|
||||||
key, allListeners, len, n, listener;
|
key, allListeners, len, n, listener;
|
||||||
|
// filter black attrs
|
||||||
|
for (var i in CLONE_BLACK_LIST) {
|
||||||
|
var blockAttr = CLONE_BLACK_LIST[i];
|
||||||
|
delete attrs[blockAttr];
|
||||||
|
}
|
||||||
|
var node = new Kinetic[className](attrs);
|
||||||
// copy over listeners
|
// copy over listeners
|
||||||
for(key in this.eventListeners) {
|
for(key in this.eventListeners) {
|
||||||
allListeners = this.eventListeners[key];
|
allListeners = this.eventListeners[key];
|
||||||
|
|||||||
@@ -416,7 +416,8 @@ suite('Node', function() {
|
|||||||
shadowOffsetX: 20,
|
shadowOffsetX: 20,
|
||||||
shadowOffsetY: 20,
|
shadowOffsetY: 20,
|
||||||
draggable: true,
|
draggable: true,
|
||||||
name: 'myRect'
|
name: 'myRect',
|
||||||
|
id : 'myRect'
|
||||||
});
|
});
|
||||||
|
|
||||||
var clicks = [];
|
var clicks = [];
|
||||||
@@ -439,6 +440,8 @@ suite('Node', function() {
|
|||||||
assert.equal(rect.getShadowColor(), 'black');
|
assert.equal(rect.getShadowColor(), 'black');
|
||||||
assert.equal(clone.getShadowColor(), 'black');
|
assert.equal(clone.getShadowColor(), 'black');
|
||||||
|
|
||||||
|
assert.equal(clone.id() == undefined, true, 'do not clone id');
|
||||||
|
|
||||||
clone.setShadowColor('green');
|
clone.setShadowColor('green');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user