|
446 | 446 |
|
447 | 447 | var ret = Reflect.set(target, property, newValue, proxy); |
448 | 448 |
|
449 | | - var isDC = newValue && newValue._isDataContext; |
450 | | - var isNew = isDC && newValue._parent !== proxy && oldValue === undefined; |
| 449 | + var isDC = newValue?._isDataContext; |
| 450 | + var isNew = oldValue === undefined; |
| 451 | + |
451 | 452 | if (isDC) { |
452 | 453 | newValue._isModified = true; |
453 | 454 | newValue._parent = proxy; |
454 | | - } |
455 | | - |
456 | | - if (isDC && newValue._propertyName !== property) { |
457 | | - |
458 | | - //console.log("'-reposition' set: newValue propertyName is change ", newValue + "", ">", property, event); |
459 | | - eventName = "reposition"; |
460 | 455 | newValue._propertyName = property; |
461 | 456 | } |
462 | | - else if (isDC && isNew) { |
463 | 457 |
|
| 458 | + if (isNew) { |
464 | 459 | //console.log("'-new' set: oldValue is undefined", property, event); |
465 | 460 | eventName = "new"; |
466 | 461 | } |
| 462 | + else if (isDC && typeof newValue._propertyName === 'string' && newValue._propertyName !== property) { |
| 463 | + //console.log("'-reposition' set: newValue propertyName is change ", newValue + "", ">", property, event); |
| 464 | + eventName = "reposition"; |
| 465 | + } |
467 | 466 | else { |
468 | | - |
469 | 467 | //console.log("'-set' set: newValue parent is change", property, event); |
470 | 468 | eventName = "set"; |
471 | 469 | } |
|
678 | 676 |
|
679 | 677 | if (!def._isDataContext) { def = createDataContext(def); } |
680 | 678 | if (val?._events) { def._events = val._events; } |
| 679 | + if (val?._propertyName && val._parent) { val._parent[val._propertyName] = def; } |
681 | 680 |
|
682 | 681 | it.next(); |
683 | 682 | it.next(); |
|
686 | 685 | } |
687 | 686 | else if (_typeof(val) !== _typeof(def)) { |
688 | 687 |
|
| 688 | + if (val?._isDataContext) { |
| 689 | + |
| 690 | + def = createDataContext(def); |
| 691 | + def._events = val._events; |
| 692 | + |
| 693 | + if (val?._propertyName && val._parent) { val._parent[val._propertyName] = def; } |
| 694 | + } |
| 695 | + |
689 | 696 | return def; |
690 | 697 | } |
691 | 698 |
|
|
0 commit comments