11

このアプリの一部は、ライブ HTML として表示する必要がある HTML をサーバーから取得します。これは、ディレクティブを使用して簡単に実行できますng-bind-html-unsafe="expression"(少なくとも Angular 1.0.2 では)。

ただし、HTML には、HTML で使用される関数が定義されているため、実行する必要がある JavaScript もあり、それはディレクティブを使用すると発生しないようです。

それを行うAngularスタイルの方法はありますか? それとも、帯域外のスクリプト読み込み手法を調べる必要がありますか?

(サーバーが送信する Java スクリプトを実行するのに十分信頼できるかどうかについては議論しないでください。私はサーバーを信頼しており、リスクを認識しており、これは非常に特殊な状況です。)

4

2 に答える 2

9

バリアントを提案できます。まず、ディレクティブを作成する必要があります:

app.directive('html', [ function () {
  return {
    restrict: 'A',
    link: function (scope, element, attrs) {
      element.html(attrs.html);
    }
  }
}]);

その後、タグ内で使用できます。

<div html="{{code}}"></div>
于 2014-08-21T16:50:59.047 に答える
7

jQuery が必要です (Angular の前にロードします):

「jqlite でスクリプト タグをサポートすることを検討しましたが、クロス ブラウザーのサポートを得るために必要なことには、多くの黒魔術が必要です。このため、今のところ、ユーザーが jquery と一緒に使用することをお勧めすることにしました。この特定のケースではAngular」 -- https://groups.google.com/d/msg/angular/H4haaMePJU0/5seG803by5kJ

AngularJS: ng-include 内で角度ロード スクリプトを作成する方法も参照してください。

于 2012-12-30T04:45:57.570 に答える