是否有关于pushObject的事件?

时间:2013-05-25 01:35:17

标签: jquery-ui ember.js

我正在以编程方式将对象(使用pushObject)推送到可排序的列表中。我的问题变成了,如果我尝试$(selector).sortable('refresh')$(selector).sortable('serialize'),序列化不包含最近添加的dom项。我可以console.log($(选择器)),它似乎知道dom项目已被添加。

我最初的想法是,一旦pushObject完成,有一个值得关注的事件吗?还是回调?

1 个答案:

答案 0 :(得分:2)

  

是否有要在pushObject上观察的事件?

最简单的方法是添加一个在列表长度发生变化时触发的观察者。但在这种情况下,这可能还不够。

听起来这是个时间问题。如果您尝试在pushObject之后(甚至在观察者中)调用刷新,则刷新代码将在更新dom之前运行。

诀窍是确保在将新元素写入dom后调用$(selector).sortable('refresh')。这可能来自dom项目视图中的didInsertElement挂钩或来自观察者,但是@Luke在评论中提醒我最好的方法是在渲染完成后安排刷新运行。类似的东西:

Em.run.schedule('afterRender', this, this.refreshSortable)
相关问题