Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Ember from 'ember';
- const Line = Ember.Object.extend({
- selectionValues: Ember.computed('selections.@each.value', function() {
- return this.get('selections').mapBy('value');
- })
- });
- const Order = Ember.Object.extend({
- selectionValues: Ember.computed('lines.@each.selectionValues', function() {
- // Ember.A to avoid problems observing it!
- return Ember.A(this.get('lines')
- .mapBy('selectionValues')
- .reduce((a, b) => a.concat(b), []));
- })
- });
- export default Ember.Controller.extend({
- appName: 'Ember Twiddle',
- order: Order.create({
- lines: Ember.A([
- // Line 1
- Line.create({
- isDeleted: false,
- selections: Ember.A([
- Ember.Object.create({
- value: 1
- }),
- Ember.Object.create({
- value: 2
- })
- ])
- }),
- // Line 2
- Line.create({
- isDeleted: false,
- selections: Ember.A([
- Ember.Object.create({
- value: 3
- }),
- Ember.Object.create({
- value: 4
- })
- ])
- }),
- // Line 3 (deleted)
- Line.create({
- isDeleted: true,
- selections: Ember.A([
- Ember.Object.create({
- value: 100
- })
- ])
- }),
- // Line 4
- Line.create({
- isDeleted: false,
- selections: Ember.A([
- Ember.Object.create({
- value: 6
- })
- ])
- })
- ])
- }),
- actions: {
- pushSelection(line) {
- line.get('selections').pushObject(Ember.Object.create({ value: 1 }));
- },
- deleteSelection(line, selection) {
- line.get('selections').removeObject(selection);
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement