1

2 つの異なる要素があります。1 つは、img タグなどの HTML を入力できるディレクティブとしてコンテンツ編集可能な DIV であり、キーを押すと自動的にレンダリングされます。

次に、ng-model にバインドされた textarea があり、ユーザーが HTML を主に img タグで入力できるようにして、自動的にレンダリングできるようにしたいのですが、ユーザーがタグを入力した場合、これが可能かどうかわかりません。そのまま保存。

テキストエリアで私が望むものを達成するための最良の解決策は何ですか? ダイレクトを作成する必要がありますか、それともバインドされている ng-model 変数を活用できるより単純なソリューションがありますか。

最後の質問ですが、入力を安全に処理するために心配する必要があるセキュリティへの影響はありますか? つまり、script タグを入れてほしくありません。img タグ、リンク、そして HTML のフォーマットだけです。レンダリング前に $sanitize(htmlContent) を実行するディレクティブに $santize サービスを使用します。

4

1 に答える 1

1

厳密なコンテキスト エスケープを使用する必要があります

次のようなことをしています:

<textarea ng-model="content"></textarea>
<div ng-bind-html="getSafe()"></div>

あなたのコントローラーで:

$scope.getSafe = function(){
    return $sce.trustAsHtml($scope.content);
}
于 2014-10-29T14:21:25.800 に答える