Comments (5)
In further testing, this happens with a parent child relationship as well.
from ember-data-copyable.
Okay after some debugging, I figured out what is going on!
The model is not actually being overwritten. The issue spans from Ember Data's implicit inverse relationship setup. Pretty much, when we do a copy by reference of a child model which has an inverse, it no longer belongs to the original model. The child now belongs to the copy. That is why you see all the child relationships disappear when you click on copy
.
One thing you can do is just add inverse: null
to the House's windows property:
// models/house.js
export default Model.extend(Copyable, {
address: attr(),
window: hasMany('window', { inverse: null })
});
All in all, this is an ember data issue and not something that I can control from within this addon.
from ember-data-copyable.
Thanks for diagnosing this further. I can look at configuring it to not have this explicit inverse, or just traverse the relationship tree and copy each. In case I wanted to keep the inverse relationship, is there a way to deep copy relationships so it is not by reference?
from ember-data-copyable.
No problem at all! It was an interesting problem to debug.
To be able to deep copy a child relationship, the Copyable mixin must be on the child model(s). After you do that, it should work out of the box.
from ember-data-copyable.
Excellent, thanks again!
from ember-data-copyable.
Related Issues (15)
- Allow for copying to an object other than models HOT 3
- Is there is a way to get the list of created record ( access to _meta at the end of processing ? ) HOT 2
- fragment error HOT 2
- Is the idea behind how copy by reference done still valid HOT 4
- DEPRECATION: ember-cli-babel 5.x has been deprecated. HOT 2
- Model with fragment error HOT 3
- indirect nested models not copied HOT 2
- Shadowing `options` attribute in copy function HOT 1
- overwrite id must be string
- overwrite with default values
- Removing mixins for Ember Octane HOT 1
- Consider pulling back in some updates here? HOT 3
- TaskInstance '__DS_COPY_TASK_RUNNER__' was canceled because it belongs to a 'drop' Task that was already running. HOT 10
- Allow specifying a list of custom attributes to copy HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ember-data-copyable.