Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. import Ember from 'ember';
  2.  
  3. const Line = Ember.Object.extend({
  4. selectionValues: Ember.computed('selections.@each.value', function() {
  5. return this.get('selections').mapBy('value');
  6. })
  7. });
  8.  
  9. const Order = Ember.Object.extend({
  10. selectionValues: Ember.computed('lines.@each.selectionValues', function() {
  11. // Ember.A to avoid problems observing it!
  12. return Ember.A(this.get('lines')
  13. .mapBy('selectionValues')
  14. .reduce((a, b) => a.concat(b), []));
  15. })
  16. });
  17.  
  18. export default Ember.Controller.extend({
  19. appName: 'Ember Twiddle',
  20.  
  21. order: Order.create({
  22. lines: Ember.A([
  23. // Line 1
  24. Line.create({
  25. isDeleted: false,
  26. selections: Ember.A([
  27. Ember.Object.create({
  28. value: 1
  29. }),
  30. Ember.Object.create({
  31. value: 2
  32. })
  33. ])
  34. }),
  35. // Line 2
  36. Line.create({
  37. isDeleted: false,
  38. selections: Ember.A([
  39. Ember.Object.create({
  40. value: 3
  41. }),
  42. Ember.Object.create({
  43. value: 4
  44. })
  45. ])
  46. }),
  47. // Line 3 (deleted)
  48. Line.create({
  49. isDeleted: true,
  50. selections: Ember.A([
  51. Ember.Object.create({
  52. value: 100
  53. })
  54. ])
  55. }),
  56. // Line 4
  57. Line.create({
  58. isDeleted: false,
  59. selections: Ember.A([
  60. Ember.Object.create({
  61. value: 6
  62. })
  63. ])
  64. })
  65. ])
  66. }),
  67.  
  68. actions: {
  69. pushSelection(line) {
  70. line.get('selections').pushObject(Ember.Object.create({ value: 1 }));
  71. },
  72. deleteSelection(line, selection) {
  73. line.get('selections').removeObject(selection);
  74. }
  75. }
  76. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement