2016-12-10 5 views
0

コンポーネント:エンバーjQueryのUIはない同期項目を削除ソート可能

テンプレート
export default Ember.Component.extend({ 

_refreshSortable() { 
    this.$().sortable('destroy'); 
    this.renderSortable(); 

}, 
fakeDataChanged: Ember.observer('fakeData.[]', function() { 
    Ember.run.scheduleOnce('afterRender', this, this._refreshSortable); 

}), 

fakeData: [ 
    Ember.Object.create({id: 1, name: 'test'}), 
    Ember.Object.create({id: 2, name: 'test1'}), 
    Ember.Object.create({id: 3, name: 'test2'}), 
    Ember.Object.create({id: 4, name: 'test3'}), 
], 

actions: { 
    removeItem(item) { 
     this.get('fakeData').removeObject(item); 

    } 

}, 
renderSortable() { 
     this.$().sortable({ 
      opacity : 0.6, 
      axis : 'y' 

      }); 

      this.$().sortable().disableSelection(); 

    }, 

    _renderSortable: Ember.on('didInsertElement', function() { 

     this.renderSortable(); 

    }), 



}); 

:あなたがしようとすると、ソートが実行された後に項目を削除した場合

{{#sortable-ui as |sortable|}} 

     {{#each sortable.fakeData as |item|}} 

      <li>{{item.name}}<button {{action "removeItem" item target=sortable}}>x</button></li> 

     {{/each}} 

    {{/sortable-ui}} 

が、それはどちらかが能力をロックします削除したり削除したりすることができます。

これは根本的な問題を説明するための簡単なコードです。

+0

私は強く、この中を実装するために、あなたをお勧めすることができます純粋なエバー。 – Lux

+0

emberがサポートするhtml5ドラッグ&ドロップAPIを使用することをお勧めしますか?私は少なくともIE10をサポートする必要がありますが、これは主に、完全なブラウザサポートのためにjQuery UIを使用した理由です。私はD&D APIの経験はあまりありません。 – tookien

+0

はい、または既存の[addon](http://jgwhite.co.uk/ember-sortable/demo/)を使用してください。 – Lux

答えて

0

は、それを考え出し少しハックが、この問題を解決するための方法の一つである:テンプレートで、その後

removed: true, 

    didRender() { 
     this._super(...arguments); 
     this.set('removed', true); 

    }, 



actions: { 
    removeItem(item) { 
     this.set('removed', false); 
     this.get('fakeData').removeObject(item); 
     this.rerender(); 

    } 

}, 

{{#sortable-ui as |sortable|}} 
    {{#if sortable.removed}} 
    {{#each sortable.fakeData as |item|}} 

     <li>{{item.name}}<button {{action "removeItem" item target=sortable}}>x</button></li> 

    {{/each}} 

    {{/if}} 

{{/sortable-ui}} 
関連する問題