Skip to content

Instantly share code, notes, and snippets.

@lolmaus
Created November 18, 2020 19:29
Show Gist options
  • Save lolmaus/eff8e81ab024dc8bcf5cc39d833c7d66 to your computer and use it in GitHub Desktop.
Save lolmaus/eff8e81ab024dc8bcf5cc39d833c7d66 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({
metaAttributes: A([AttributeModel.create()]),
allAdditiveArrays: computed('metaAttributes.@each.additives', function () {
return this.metaAttributes.map((meta) => meta.additives);
}),
allAdditives: computed('allAdditiveArrays.@each.[]', function(){
return [].concat.apply([], this.allAdditiveArrays);
}),
});
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.13.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