当其中一个子视图中的图像完全加载并出现在dom中时,如何通知父视图?我需要在所有图像加载后测量所有孩子的完整身高。由于在didInsertElement
中测量它是不正确的高度(它返回没有图像高度的高度)。
这就是我的视图结构的样子:
{{#view App.ArtistBoxesView}}
{{#each artist in controller}}
{{#view App.ArtistBoxView}}
<div class="artist">
<div class="thumb">{{styledmediaitem artist.thumb style="thumb"}}</div>
</div>
{{/view}}
{{/each}}
{{/view}}
其中styledmediaitem
是一个把手帮助器,它输出一个<img src=""/>
,其中包含正确的服务器路径。
当ArtistBoxesView
中的图片(甚至更好:当所有图片都已完全预装)时,我想在ArtistBoxView
中收到通知。
答案 0 :(得分:3)
考虑在视图的didInsertElement fx中使用jQuery ImagesLoaded plugin。这样的事情可以解决问题:
App.ArtistBoxView = Ember.View.extend({
didInsertElement: function() {
this.$().imagesLoaded( function( $images, $proper, $broken ) {
console.log( $images.length + ' images total have been loaded' );
console.log( $proper.length + ' properly loaded images' );
console.log( $broken.length + ' broken images' );
});
}
});