jquery-ui – 使用Ember.js和jQuery.ui的可排序列表

前端之家收集整理的这篇文章主要介绍了jquery-ui – 使用Ember.js和jQuery.ui的可排序列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力获取由Ember.js创建的列表,可以使用jQuery.ui进行排序.

控制器如下所示:

App.ThingyController = Ember.ArrayController.create
  content: [
    { name: 'Item1' },{ name: 'Item2' }
  ]

和这样的模板:

<script type="text/x-handlebars">
  {{#collection contentBinding="App.ThingyController" tagName="ul" id="sortable"}}
    {{content.name}}
  {{/collection}}
</script>

我的问题是:

>我最好在ul“#sortable”上调用sortable()函数?控制器上有一个事件和可以使用的渲染HTML元素的句柄吗?
>如何将jQuery.ui回调连接到Ember.js控制器?比方说,通过ajax将更新的列表发送到服务器?

所有这一切都可以避免Ember.js的抽象,但我想做到这一点“正确的方式”.

或者是整个概念有缺陷,Ember.js提供了一个没有jQuery.ui的“可排序”功能

解决方法

您可以实现Em.View#didInsertElement [1],您可以确定dom元素已创建并插入正文.这将是你称为$.sortable的地方:
App.MySortableView = Em.CollectionView.extend({
  tagName: "ul",didInsertElement: function() {
    this.$().sortable()
  }
})

模板:

{{#collection "App.MySortableView" ...}}
  ...
{{/collection}}

(我没有尝试这个代码,但我不明白为什么它不应该工作…)

[1] https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L738

猜你在找的jQuery相关文章