2016-06-30 12 views
1

ディレクティブ内の角度2の約束をどのように解決することができますか?私は、単純な画像の読み込みディレクティブをやろうとしています:角度2手動で約束をどのように解決するか?

@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); 
    } 
} 

私の試みは、これまで動作しません。

+0

あなたは 'Promise.resolve(this._promise)を試してみましたが、'? – echonax

+0

@echonaxが動作しない – albanx

+0

何をしようとしていますか?あなたは約束を解決せず、彼ら自身を解決する*。 – dfsq

答えて

1

あなたはそのような何かを試みることができる:

loadImage() { 
    this._promise = new Promise<ElementRef>(resolve => { 
     this.resolve = resolve; 
    }); 

} 

onImageLoad() { 
    this.resolve(this._elRef); 
    this._loaded = true; 
    console.log('Image loaded ', this._elRef); 
} 
+0

私はechonaxのソリューションを好まれていましたが、これはうまく動作しています。ありがとうございました – albanx

関連する問題