gokatz
4/22/2016 - 12:43 PM

each draggable

each draggable

{
  "version": "0.7.2",
  "EmberENV": {
    "FEATURES": {}
  },
  "options": {
    "use_pods": false,
    "enable-testing": false
  },
  "dependencies": {
    "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
    "ember": "2.4.4",
    "ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.4.3/ember-data.js",
    "ember-template-compiler": "2.4.4"
  }
}
{{item}} 		
{{#if show}}
<button class="hide" {{action removeObject item}}> remove </button>
{{/if}}
{{yield}}
<h1>Simulation of drag n drag sort</h1>
<br>
<br>
<div style="color:red"> {{status}}</div>
<hr>
{{#each model as |item index|}}

	{{#my-component item=item show=show removeObject=(action 'removeObject' item)}}	

	{{/my-component}}
{{/each}}
<hr>
model -
{{#each model as |item|}}
	{{item}}
{{/each}}

{{outlet}}
<br>
<br>
import Ember from 'ember';

export default Ember.Controller.extend({
  appName: 'Ember Twiddle',
	model: [1,2,3],
	init() {
	this._super(...arguments);
		this.set('status', 'wait until swapping');

	Ember.run.later(this, function() {
		//the below line is to simulate drag n drop sort
 		$('.drag-item:eq(0)').after($('.drag-item:eq(2)'));
		this.setProperties({ show: true, status: 'swapping done, now try to remove 1'});
let i = this.get('model.2');
    console.log(i);
this.get('model').removeObject(i);
    console.log(this.get('model'));
Ember.run.scheduleOnce('render', this, () => {
this.get('model').insertAt(1, i);	
    console.log(this.get('model'));
});

  }, 3000);

  },

actions :{
removeObject(item) {
  alert(item);
this.get('model').removeObject(item);
}
}
});
 
import Ember from 'ember';

const { get } = Ember;
export default Ember.Component.extend({
classNames:['drag-item']
});