2016-09-08 5 views
1

サムネイルURLをプロパティとして持つモデルクラスがあります。このクラスには別のドメインのイメージのURLが含まれているため、コンポーネントのテンプレートでレンダリングする前にサニタイズする必要があります。私は、背景画像としてテンプレートに使用される消されたスタイル(SafeStyle)を返さなければならないプロパティthubnailStyleUrlを作成しました。Angular 2 Modelクラスでプロパティをサニタイズする方法

が未定義のプロパティ「bypassSecurityTrustStyle」を読み取ることができません:私は、コードを実行すると

はしかし、私は次のエラーを取得します。

DomSanitizerを以下のようにモデルのコンストラクタに挿入できますか?そうでない場合は、レンダリングする前にこのプロパティをサニタイズする必要があります。

ここに私のモデルクラスはあなたがservicecomponentあなたからこれを呼び出す場合は

new RecentOrderModel(); 

としてこのモデルを呼び出す場合には、依存性注入を持つことは不可能です...

import {DomSanitizer, SafeStyle} from "@angular/platform-browser"; 

export class RecentOrderModel { 

    constructor(dataModel:any, private _sanitizer: DomSanitizer) { 
     this.orderNum = dataModel.orderNum; 
     this.poNum = dataModel.poNum; 
     this.buyerName = dataModel.buyerName; 
     this.thumbnailUrl = dataModel.thumbnailUrl; 
    } 

    public get thumbnailStyleUrl() :SafeStyle { 
     return this._sanitizer.bypassSecurityTrustStyle('url('+this.thumbnailUrl+')'); 
    } 

    orderNum:string; 
    poNum:string; 
    buyerName:string; 
    thumbnailUrl:string; 


} 
+0

最新バージョン(RC.6)をお使いですか? –

答えて

0

です次のようなことができます:

@Injectable() 
export class RecentOrderFactory { 

    constructor(private _sanitizer: DomSanitizer) {} 

    public createOrderModel(datamodel: any) : RecentOrderModel { 
     return new RecentOrderModel(datamodel, this._sanitizer); 
    } 

} 

この事実あなたのproviders配列にryを追加する必要があります。

関連する問題