2013-06-06 6 views
9

$sanitizeサービスtells me that

(ホワイトリストから)すべての安全なトークンをサニタイズ。

私は(empa、およびstrong VIZ)HTMLのさらに小さなサブセットを表示します。コアJavaScriptを変更することなくホワイトリストを$serviceに簡単に変更する方法はありますか?

+0

コピー指令のソースと、それから自分を作る;) – Guillaume86

+0

は、私が(そして悲しいことに、私は)角度リソースでそれをしなければならなかったかもしれないが、私はから分岐避けたいです可能な限りベースファイルを作成します。 –

+0

これには解決策がありましたか?または自分で作成しましたか? – user3319803

答えて

4

$ delegate(前述のように)他のライブラリを使用できます。私は自分で許可するタグを選択できるので、個人的にはsanitizeHtmlをプロジェクトに使用しています。セットアップ:

4

ソースファイルを変更しないように、$ sanitizeサービスを装飾できます。ここでは、$ sanitizeの内部で何が起こるかを記録する例を示します。不要な要素をフィルタリングするために必要な処理を行うことができます。

var app = angular.module("app", ["ngSanitize"]); 

app.config(function($provide){ 
    $provide.decorator("$sanitize", function($delegate, $log){ 
     return function(text, target){ 

      var result = $delegate(text, target); 
      $log.info("$sanitize input: " + text); 
      $log.info("$sanitize output: " + result); 

      return result; 
     }; 
    }); 
}); 

デコレータの内部では、$ delegateは$ santizeを参照しています。 $ delegate(text、target)を呼び出してから結果を返す前に、入力から必要なものをフィルタリングします。

関連する問題