Reputation: 6333
How would be possible to resolve a promise in Angular 2 inside a directive? I am trying to do a simple image loading directive:
@Directive({
selector: '[carouselImage]',
host: {
'(load)' : 'onImageLoad()'
}
})
class CarouselImageDirective {
private _promise: Promise;
private _loaded: boolean = false;
constructor(private _elRef: ElementRef, private _renderer: Renderer) {
}
loadImage() {
this._promise = new Promise<ElementRef>( resolve => {
resolve(this._elRef);
});
}
onImageLoad() {
this._promise.resolve(); //this won't work
this._loaded = true;
console.log('Image loaded ', this._elRef);
}
}
My attempt so far does not work.
Upvotes: 1
Views: 812
Reputation: 202256
You could try something like that:
loadImage() {
this._promise = new Promise<ElementRef>( resolve => {
this.resolve = resolve;
});
}
onImageLoad() {
this.resolve(this._elRef);
this._loaded = true;
console.log('Image loaded ', this._elRef);
}
Upvotes: 3