22

Angular 1.2 で iframe をページに動的に挿入しようとしています。コードは次のとおりです。

html:

<div id="player_wrapper" ng-cloak>
    <div ng-bind-html="player"></div>
</div>

js:

$http({method: 'GET', url: url}).
    success(function(data, status) {
        $scope.player = data.html;
    }.......

したがって、data.html は、で始まる有効な HTML を持つ文字列です。

<iframe ...>

文字列には div も含まれています。したがって、次のようになります。

<iframe src='...' ...></iframe><div>some stuf</div>

app.js 'ngSanitize' で使用します。表示されるのは(iframeの後の)divですが、iframe自体ではありません。

jQueryを使用する場合、基本的には

$(#'player_wrapper').html(data.html)

正常に動作します...しかし、それを適切なangularJSにしようとしています。

iframe の後の div のみが表示されている理由について何か考えはありますか?

どうもありがとう

4

3 に答える 3

8

ng-bind-html$sceのドキュメントに記載されているように、サービスを使用する必要があります。

$scope.player = $sce.trustAsHtml('your html goes here');

例については、このプランクを参照してください。

于 2013-11-23T19:40:04.547 に答える