Из Ember.CollectionView есть простой способ вызвать функцию после того, как все элементы childView были визуализированы?Ember.CollectionView all children didInsertElement callback
Что-то вроде didInsertElement для всех детей.
Это то, что я делаю сейчас. Есть ли способ лучше?
App.CollectionView = Ember.CollectionView.extend
didInsertChildElements: (->
if @get('childViews').everyProperty('state', 'inDOM')
@dosomething()
).observes('childViews')
itemViewClass: Ember.View.extend()
EDIT вот лучший пример того, что я пытаюсь сделать.
Для каждого ChildView я устанавливаю позицию с помощью didInsertElement, а затем из родителя я хочу прокрутить до указанного дочернего элемента, используя обратный вызов didInsertElement. Проблема заключается в том, что callback didInsertElement родителя вызывается перед дочерним.
App.CollectionView = Ember.CollectionView.extend
dateBinding: 'controller.date'
didInsertElement: ->
#@scrollTo @get('date')#old way
Ember.run.scheduleOnce('afterRender', @, 'scrollToDate')
scrollToDate: ->
@scrollTo @get('date')
scrollTo: (date) ->
day = @get('childViews').findProperty('date', date)
pos = day.get('position')
#console.log pos
@$().scrollTop(pos)
itemViewClass: Ember.View.extend
templateName: 'home/day'
dateBinding: 'content.date'
position: null
didInsertElement: ->
@set 'position', @$().offset().top
#console.log @get('position')
EDIT
Планирование обратного вызова работает afterRender! Ember.run.scheduleOnce ('afterRender', @, 'scrollToDate')