Подтвердить что ты не робот

Ember.js и jQuery Сортировка. Как работать с метаморфовыми скриптами

У меня есть приложение ember.js, которое я хотел бы использовать jquery ui sortable widget. Мой вид выглядит как

<ul id="sort-container">
{{#each content}}
    <li>{{title}}</li>
{{/each}}
</ul>

Сортировка отлично работает, пока не потребуется обновление одной из привязок. Проблема в том, что каждый <li> окружен яркими метаморфозовыми тегами <script>. См. Фактический DOM, сгенерированный на этом изображении

DOM

Есть ли простой способ сделать эти две игры красиво вместе?

Есть ли способ заставить просмотр перерисовать? Я мог бы легко реализовать это после сортировки события deactivate.

4b9b3361

Ответ 1

Мне кажется, что использование Ember.CollectionView может решить эту проблему. Поэтому я попробовал. Кажется, что работает: http://jsfiddle.net/8ahjd/

рули:

<script type="text/x-handlebars">
  {{view App.JQuerySortableView content=model}}
  <a {{action removeItem}}>Remove Second Item</a>
</script>

<script type="text/x-handlebars" data-template-name='jquery-sortable-item'>
  {{view.content.title}}
</script>

javascript:

App = Ember.Application.create();

App.ApplicationController = Ember.ArrayController.extend({
  removeItem: function() {
    this.removeAt(1);        
  }            
});

App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    return [
      {id: 1, title:'Test 1'},
      {id: 2, title:'Test 2'},
      {id: 3, title:'Test 3'}
    ];
  }
});

App.JQuerySortableItemView = Ember.View.extend({
    templateName: 'jquery-sortable-item'        
});

App.JQuerySortableView = Ember.CollectionView.extend({
    tagName: 'ul',
    itemViewClass: App.JQuerySortableItemView, 

    didInsertElement: function(){
        this._super();
        this.$().sortable().disableSelection();
    }
});