fix(img): ensure scroll has been initialized

This commit is contained in:
Adam Bradley
2016-12-07 15:59:20 -06:00
parent aec8f51b60
commit 39e1dce72d
4 changed files with 9 additions and 6 deletions

View File

@ -777,7 +777,7 @@ export class Content extends Ion implements OnDestroy, OnInit {
* @private
*/
imgsUpdate() {
if (this._imgs.length && this.isImgsUpdatable()) {
if (this._scroll.initialized && this._imgs.length && this.isImgsUpdatable()) {
updateImgs(this._imgs, this.scrollTop, this.scrollHeight, this.directionY, IMG_REQUESTABLE_BUFFER, IMG_RENDERABLE_BUFFER);
}
}

View File

@ -187,7 +187,7 @@ export class Tab2 {
<button ion-button (click)="appNavPop()">App Nav Pop</button>
</p>
<ion-list [virtualScroll]="items" [headerFn]="headerFn">
<ion-list [virtualScroll]="items">
<ion-item *virtualItem="let item">
Item: {{item}}

View File

@ -8,15 +8,15 @@
<div [virtualScroll]="items" approxItemHeight="320px">
<ion-card *virtualItem="let item">
<ion-card *virtualItem="let item; let itemBounds = bounds;">
<div>
<ion-img [src]="item.imgSrc" [height]="item.imgHeight" [alt]="item.name"></ion-img>
<ion-img [src]="item.imgSrc" [height]="item.imgHeight" [alt]="item.name" [bounds]="itemBounds"></ion-img>
</div>
<ion-item>
<ion-avatar item-left>
<ion-img [src]="item.avatarSrc" height="40" width="40"></ion-img>
<ion-img [src]="item.avatarSrc" height="40" width="40" [bounds]="itemBounds"></ion-img>
</ion-avatar>
<h2>{{ item.name }}</h2>
</ion-item>

View File

@ -11,6 +11,7 @@ export class ScrollView {
scrollStart = new Subject<ScrollEvent>();
scroll = new Subject<ScrollEvent>();
scrollEnd = new Subject<ScrollEvent>();
initialized: boolean;
private _el: HTMLElement;
private _js: boolean;
@ -28,7 +29,9 @@ export class ScrollView {
constructor(private _dom: DomController) {}
init(ele: HTMLElement, contentTop: number, contentBottom: number) {
if (!this._el) {
if (!this.initialized) {
this.initialized = true;
assert(ele, 'scroll-view, element can not be null');
this._el = ele;