0

だから私はウェブサイトをセットアップしていて、他の .html ファイルを div に動的にロードしたいと考えています。各 .html ファイルにはいくつかのコンテンツが含まれていますが、1 つの .html ファイルには独自の angularjs ディレクティブが含まれています。

$scope.content = $sce.trustAsHtml(data);とともにng-bind-htmlを使用していました。しかし、これがhtml rawを出力することを発見しました(角度ディレクティブを処理しません)。

スタックオーバーフローでさまざまなソリューションを使用しようとしましたが、うまくいきませんでした。

Web サイト: http://algorithmictrading.azurewebsites.net/

App.js: http://algorithmictrading.azurewebsites.net/js/app.js

読み込まれる .html ページの例: http://algorithmictrading.azurewebsites.net/includes/home.html http://algorithmictrading.azurewebsites.net/includes/about_us.html

angular ディレクティブを含む .html ページ: http://algorithmictrading.azurewebsites.net/includes/download.html

ご覧のとおり、Web サイトに移動して [ダウンロード] タブをクリックすると、コンテンツは読み込まれますが、ドロップダウン メニューの角度は処理されません。追加したテスト ボタンもアラート ボックスを生成する必要があります。

現在、コードは次のスレッドに基づいています: Call function inside $sce.trustAsHtml() string in Angular js

ありがとう!

4

2 に答える 2

2

テンプレートに渡す前に $sce.trustAsHtml メソッドを介してディレクティブを渡さなかった場合、Angular が html 文字列からディレクティブを取り除いていることがわかりました。

$sce.trustAsHtml('<a href="/some-link" directive-example>link to add</a>');

これを、html を挿入する要素のコンテンツの監視/コンパイルと組み合わせると、うまくいくようです。

scope.$watch(getStringValue, function() {
    $compile(element, null, -9999)(scope);    
});

この例を見てみましょう: http://plnkr.co/edit/VyZmQVnRqfIkdrYgBA1R?p=preview .

于 2015-03-04T17:47:08.350 に答える