42
A
答えて
76
更新(最終2.0.0)
添加されていない結合構文を使用して追加することができませんimport { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({name: 'safeHtml'})
export class SafeHtml implements PipeTransform {
constructor(private sanitizer:DomSanitizer){}
transform(html) {
return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustHtml(style);
// return this.sanitizer.bypassSecurityTrustScript(value);
// return this.sanitizer.bypassSecurityTrustUrl(value);
// return this.sanitizer.bypassSecurityTrustResourceUrl(value);
}
}
も参照してください。https://angular.io/api/platform-browser/DomSanitizer
更新
<div [innerHTML]="someHtml | safeHtml"
これはRC.2に固定しなければならない
元RC.6にDomSanitizer
名前に変更されようとしている
0333333も参照してください。
Angular2はDomSanitizer.bypassSecurityTrustStyle(...)
を参照してくださいRC.1
に[innerHTML]=...
と[src]="..."
のように結合CSS値とプロパティの消毒をintruduced
import {DomSanitizer} from '@angular/platform-browser';
...
constructor(sanitizer: DomSanitizationService) {
this.backgroundImageStyle = sanitizer.bypassSecurityTrustStyle('url(' + this.image + ')');
// for HTML
// this.backgroundImageStyle = sanitizer.bypassSecurityTrustHtml(...);
}
を使用し、信頼できないプレーンストリングの代わりにこの値にバインドします。
これは
someHtml = `<a href="#" onClick="alert(document.cookie);">click to see the awesome</a>`;
と
@Pipe({name: 'safeStyle'})
export class Safe {
constructor(private sanitizer:Sanitizer){}
transform(style) {
return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustHtml(style);
// return this.sanitizer.bypassSecurityTrustScript(value);
// return this.sanitizer.bypassSecurityTrustUrl(value);
// return this.sanitizer.bypassSecurityTrustResourceUrl(value);
}
}
<div [ngStyle]="someStyle | safeStyle"></div>
のようなパイプでもラップすることができますが、まだかかわらず、働いている: - [(進行中のそれの仕事)
Plunker example(角2.0.0-rc-1)
も参照してくださいAngular 2 Security Tracking Issue
と
https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.htmlヒントについて{{...}}
サニタイズコンテンツがprop="{{sanitizedContent}}"
{{}}
ためstringyfiesサニタイズを破った割り当てられる前値を使用してバインドすることはできません。
関連する問題
- 1. は、私は次のdiv要素に</p> <pre><code><div class="top"> <div class="inner1"></div> <div class="inner2"></div> <div class="inner3"></div> </div> </code></pre> <p>を持つdivのフィット残りの高さ
- 2. "位置:絶対":</p> <pre><code><html> <body> <div id="outer"><div id="inner"></div></div> </body> <html> </code></pre> <p>とそのCSS:CSS
- 3. 私は、次のdiv構造</p> <pre><code><div id="main_div"> <div id="lastChildDiv"></div> </div> </code></pre> <p>を持っているjqueryの
- 4. Perlのダンサーとテンプレートツールキット:</p> <pre><code><div class="row-fluid"> <div class="span3"> [% INCLUDE my_sidebar] </div><!--/span--> </div> </code></pre> <p>my_sidebar.ttが親と同じフォルダに存在する</p> <p>parent.tt:テンプレート
- 5. アヤックスは、データを送信しますが、私はこのHTML</p> <pre><code><div class="Likes" data-i=<?php echo $row[8];?>> <img src="../img/like.png"> <p class="L_c"><?php echo $row[4];?></p> </div> </code></pre> <p>に持っている何も
- 6. は私がページの読み込みにクラスを削除したいのdiv</p> <pre><code><div id="commonConsultationPopup" class="overlayPopup"></div> </code></pre> <p>を持っているページの読み込み
- 7. Angular 2の<template * ngFor>に相当するものは何ですか?</p> <pre><code><div *ngFor="let parent of parents"> <div *ngFor="let child of parent.children"> </div> </div> </code></pre> <p>が、私はその余分外側のdivをしたくない:
- 8. クラスセレクタを介してwidth属性を取得するにはどうすればよいですか?クラスの</p> <pre><code><div class="one" > <img src="1.png" class="two"> <div> <div class="three" > <img src="2.png" class="two"> <div> </code></pre> <p>と属性<code>width</code>を取得する方法
- 9. 角度2は、成功した、Googleのログイン</p> <pre><code><div id="{{googleLoginButtonId}}"></div> </code></pre> <p><strong>onGoogleLoginSuccess</strong>関数が呼び出さ取得されていない
- 10. < div >フィルタ< div >フィルタ
- 11. このテストは同音異義語ですか?</p> <pre><code>if((x>0 || (x<=0))) </code></pre> <p>と<code>if(true)</code>の違いは何であるいくつかの</p> <pre><code>double x; </code></pre> <p>考える
- 12. が私のWebページ</p> <pre><code><div id="clickable"> <a href="hello.com">Here!</a> </div> </code></pre> <p>に、私は次のセットアップを持っているHTMLアンカータグ
- 13. div.classを<div class="class"></div>に変換してください。Textmate
- 14. <div id="variable"></div>?
- 15. WPF:</p> <pre><code><controls:BaseUserControl x:Class="CompanyNamespace.Controls.GoogleMap" </code></pre> <p>:ユーザーコントロールの基本クラス
- 16. "span3"を "span"を変更せずに "col3"に置き換える方法はありますか?</p> <pre><code><span class="col3"></span><span class="col4"></span> <span class="col5"></span><span class="col6"></span> </code></pre> <p>から
- 17. 幅100%の要素と要素の数をネゲートする方法はありますか?</p> <pre><code><div class="search"> <input placeholder="Search term here"> <button> Go </button> </div> </code></pre> <p>当然のことながら、ボタンは入力の右に行く:
- 18. <pre><code>var record = {}; </code></pre>
- 19. <pre><code>USB:\****\**** </code></pre>
- 20. 違いは</p> <pre><code>BYTE* p; </code></pre> <p>と</p> <pre><code>BYTE^ p; </code></pre> <p>の違いは何ですかポインタ
- 21. div内のattribを取得しますか?私はそれ内の画像のIDを取得したい、私はコンテナをクリックすると、今私を</p> <pre><code><div class='container'> <img src='image1' id='1' /> <img src='image2' id='2' /> ... </div> <div class='container'> </div> </code></pre> <p>:
- 22. jQueryの.toggleClass</p> <pre><code>$(document).ready(function() { $("div").hover(function(){ $(this).toggleClass("multi") } } </code></pre> <p>index.js
- 23. PHPは、私は、次のファイルに</p> <p><em>クラス/ database.phpで</em></p> <pre><code>require_once("config/config.php"); ... </code></pre> <p><em>のconfig/config.phpの</em></p> <pre><code>... </code></pre> <p>持っ
- 24. titleformat年と月を2桁のフルカラーに変換<div>Year</div><div>Month</div>
- 25. はImportError:</p> <pre><code>from sklearn.model_selection import train_test_split </code></pre> <p>、これは</p> <pre><code>ImportError: No module named model_selection </code></pre> <p>理由の原因:いいえモジュールの名前model_selection
- 26. Perlの文字列の乗算がundefで警告しないのはなぜですか?</p> <pre><code>$foo . '' </code></pre> <p>と</p> <pre><code>"$foo" </code></pre> <p>
- 27. エルム -</p> <pre><code>a : Float </code></pre> <p>方法1が式を正しく</p> <pre><code>Mouse.x - a </code></pre> <p>を書くと考えるシグナルと数字
- 28. の優先順位! * ++はかっこが必要ですか?</p> <pre><code>!(*(++buffer)) </code></pre> <p>同じもののように:</p> <pre><code>!*++buffer </code></pre> <p>
- 29. Swiftの親/スーパークラスへの参照を取得するには? <code>A</code>からこの例では<code>B</code>継承を</p> <pre><code>class A { } class B:A { } </code></pre> <p>:
- 30. SimpleForm 2:</p> <pre><code><div class="..."> <label>...</label> <input ... /> </div> </code></pre> <p>私はinputタグが内部そのものであるマークアップを取得したいと思います:デフォルトのsimple_form 2ラッパーを使用して、ラッパー
も参照してください。http://stackoverflow.com/questions/37238757/angular2-rc1-sanitizer-inserts-double-quotes-inside-styles-breaking-it –
パイプは素晴らしいアイデアです。ありがとうございました! –
何らかの理由で、このサービスを使用しようとすると、依存関係注入が機能しません。サービスの実装を取得する代わりに、抽象サービス(空のオブジェクト)を取得します。なぜこのようなことが起こったのか考えていますか?何か不足していますか? – yarons