テキストでHTMLエスケープを行うAngularJSコマンドはありますか?カスタムディレクティブを処理していて、それが生成する出力の一部をエスケープする必要があります。
内部的には、AngularJS sanitzerはencodeEntities関数を使用しますが、それを公開しません。関数を複製できることは知っていますが、これを行うための標準的な方法があるはずです。
ユースケース:言語のローカリゼーションを行うカスタムディレクティブがあります。このディレクティブは、データファイルからのキールックアップを使用して言語テキストを検索します。場合によっては、このテキストにHTMLを含めることが許可されているか、ディレクティブがHTMLを生成して、結果の視覚的なフォーマットを改善します。さらに、このディレクティブはAngular式をパラメーターとして受け取り、それらを文字列内のトークンの代わりとして使用します。これらのパラメータはHTMLで安全ではない可能性があるため、エンコードする必要があります。
ディレクティブは、たとえば、属性として呼び出されますi18n-html='welcome_text_html,1+1,user.name'
。次に、ディレクティブは説明されているように文字列をフォーマットしelement.html
、DOMノードを更新するために使用します。