Skip to content

Instantly share code, notes, and snippets.

@lifeart
Last active November 14, 2021 21:21
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save lifeart/d83a6cf6d6d7ce0a71d9686f4ff202ad to your computer and use it in GitHub Desktop.
New Twiddle
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import EmberObject, { computed } from '@ember/object';
import { A } from '@ember/array';
const AttributeModel = EmberObject.extend({
countAdditives: alias('additives.length'),
additives: A()
});
const RootModel = EmberObject.extend({
allAdditives: computed('metaAttributes.@each.countAdditives', function(){
return this.metaAttributes.toArray().reduce((acc, el)=>{
return acc.concat(el.additives.toArray());
}, []);
}),
metaAttributes: A([AttributeModel.create()])
});
export default class ApplicationController extends Controller {
version = Ember.VERSION;
constructor() {
super(...arguments);
let model = RootModel.create();
this.set('valueOne', model.allAdditives.slice().length);
model.metaAttributes[0].additives.pushObject('foo');
this.set('valueTwo', model.allAdditives.slice().length);
}
}
Simplier reproduction, (current ember {{version}}):
<br><br>
Case1: {{valueOne}} / should be 0<br>
Case2: {{valueTwo}} / should be 1<br>
<br><br>
Change <b>ember-source</b> from 3.12.1 to 3.13.1+ to see regression.
{
"version": "0.17.1",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
"ember": "3.12.1",
"ember-template-compiler": "3.12.1",
"ember-testing": "3.18.1"
},
"addons": {
"@glimmer/component": "1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment