2016-05-18 10 views
3

@HostBindingを使用してプロパティを背景画像にバインドすると、画像URLを指定すると機能しません。 Angular2 RC-1とAngular2 @HostBindingは背景画像スタイルにバインドできません

まず例:

import {Component, HostBinding} from "@angular/core"; 

@Component({ 
    selector: 'demo', 
    template: 'something' 
}) 
export class DemoComponent { 

    @HostBinding('style.background-image') 
    backgroundImage = 'url(http://placekitten.com/g/200/300)'; 
} 

DOMを検査するとき、我々は<demo>something</demo>見つけることができます - >良くない


第二の例:

import {Component, HostBinding} from "@angular/core"; 

@Component({ 
    selector: 'demo', 
    template: 'something' 
}) 
export class DemoComponent { 

    @HostBinding('style.background-image') 
    backgroundImage = 'none'; 
} 
DOMを検査する際

今回、我々は<demo style="background-image: none;">something</demo>見つけることができます - > GOOD


私が代わりに background-imagebackgroundと試みた

、それは動作しません、まだ"blue"のような色で動作しますが、 URL。

私も"none"から"blue"に変更するとき、それは動作しますが、URLで、値が"none"を滞在しない、動的にngAfterViewInit()内部setTimeoutと後で値を変更しようとしました。

+0

あなたがそうのような引用符でURLを設定しようとしたことがあり.com/g/200/300 ") '; – rinukkusu

+1

はい、私は引用符で試しました。私は変数のinsted関数を試してみました。私は '@ Component'デコレータ内で' host'プロパティを試しました。常に同じ結果。 –

答えて

4

Angular2のスタイルサニタイザーが非常に制限されていたので、動作です...最近修正されたようです。

は、この問題を参照してください: `backgroundImageの=「URL("のhttp:// placekitten

+1

'DomSanitizationService.bypassSecurityTrustStyle()'とともに動作します。アドバイスありがとう。 –

関連する問題