This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
ember-autotracking-object-arrays [2023/09/20 04:43] sausage |
ember-autotracking-object-arrays [2023/09/20 04:53] (current) sausage |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Ember Auto-tracking Object Arrays - Deep Dive ====== | ====== Ember Auto-tracking Object Arrays - Deep Dive ====== | ||
| - | {{ :ember:ember-title-card.jpg?nolink&300|}}There will be many times when an Ember application needs to work with simple temporary data (POJOs), but setting up models and working with Ember Data's store is simply overkill. | + | {{ :ember:ember-title-card.jpg?nolink&300|}}There will be many times when an Ember application needs to work with simple temporary data (POJOs), but setting up models and working with Ember Data's store might be overkill. |
| The user might still want to bind this data to controls and have it perform dynamically when the data changes. | The user might still want to bind this data to controls and have it perform dynamically when the data changes. | ||
| Line 157: | Line 157: | ||
| } | } | ||
| - | @action changeContent(){} | + | @action changeContent(){} |
| } | } | ||
| Line 195: | Line 195: | ||
| ==== Spread operator ==== | ==== Spread operator ==== | ||
| - | For the second way to deal with the problem, let's change try adding our new object to the array using the spread operator: | + | For the second way to deal with the problem, let's try adding our new object to the array using the spread operator: |
| <code javascript> | <code javascript> | ||
| Line 208: | Line 208: | ||
| This works too. The spread operator is only a deep copy of the first layer, [https://medium.com/@kevinlai76/the-spread-operator-deep-and-shallow-copies-d193ac9b58bf | not the nested data]. Which is not a deep copy at all in my book. But it is enough to trigger a change in Ember. But we'll come back to this point a little later. | This works too. The spread operator is only a deep copy of the first layer, [https://medium.com/@kevinlai76/the-spread-operator-deep-and-shallow-copies-d193ac9b58bf | not the nested data]. Which is not a deep copy at all in my book. But it is enough to trigger a change in Ember. But we'll come back to this point a little later. | ||
| - | |||
| - | (move this)However, Ember still does not see size changes to the array at all. | ||
| - | |||
| ==== Ember's pushObject ==== | ==== Ember's pushObject ==== | ||
| - | Let's move now to trying Ember's ''pushObject'' function which is attached to all javascript arrays: | + | Let's move to trying Ember's ''pushObject'' function which is attached to all javascript arrays: |
| <code javascript> | <code javascript> | ||