2017-03-27 6 views
1

角度ページにHTMLを挿入することはできませんは私が角度ページにHTMLを挿入したい

私のコントローラで始まる:

myapp.controller("myCtrl", function ($scope, $http, $stateParams, $sce) { 

$scope.renderHtml = function(html_code) { 
    return $sce.trustAsHtml(html_code); 
}; 
$scope.pgf = "<p>Hello</p>"; 

そして、私のHTMLページに私が持っている:

<div class="intro"> AA {{renderHtml(pgf)}} AA </div> 

、ブラウザで、私は以下を参照してください。

AA <p>Hello</p> AA 

好きなところ

AA 
Hello 
AA 

これはバージョンの問題ですか?一貫したバージョンのセットを選ぶにはどうすればよいですか? (私はバージョンを上げると、私はエラーのすべての種類を取得...)

+0

あなたはNG-バインドのhtml = "varInScope" してみてください、とにrenderHtmlのリターンを格納しましたvarInScope? –

+2

[AngularJS:HTMLをビューに挿入]の可能な複製(http://stackoverflow.com/questions/9381926/angularjs-insert-html-into-view) –

答えて

2

あなたはHTMLコンテンツをバインドするng-bind-htmlangular ngBindHtml docs)を使用する必要があります...

CONTROLLER

function myCtrl($scope, $sce) { 

    $scope.renderHtml = function(html_code) { 
     return $sce.trustAsHtml(html_code); 
    }; 

    $scope.pgf = "<p>Hello I'm a Bear</p>"; 
} 

HTML

<div ng-bind-html="renderHtml(pgf)"></div> 


また、ここではあなたの例としてPLUNKERの作業があります。

+0

ありがとうございました。これは機能しますが、関数呼び出しがなければ(私にとっては)

1

あなたの角度コードは機能しますが、正しい場所にHTMLバインディングを配置していません。 あなたが<div ng-bind-html="trustHTML(pgf)"></div>

+0

ありがとう!これは動作しますが、trustHTML()関数は必要ありません。 つまり、挿入されたhtmlをラップするかどうかにかかわらず動作します。 重要な点は、それをng-bind-html属性に入れることです。 –

1

はモジュールngngBindHtmlディレクティブを試してみてくださいと言う必要がありますので、あなたのHTMLに{{ function }}

を結合角度内で機能を設定することはできません。 HTML要素にコンテンツをバインドする安全な方法を提供します。

構文:

<element ng-bind-html="expression"></element> 

DEMO

var app = angular.module('myApp', []); 
 

 
app.controller('MainCtrl', ['$scope', '$sce', function($scope, $sce) { 
 
    $scope.renderHtml = function(html_code) { 
 
    return $sce.trustAsHtml(html_code); 
 
    }; 
 

 
    $scope.pgf = "<h1>Hello I'm a Bear</h1>"; 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MainCtrl"> 
 
    <div ng-bind-html="renderHtml(pgf)"></div> 
 
</div>

+0

ありがとう!これは動作しますが、trustHTML()関数は必要ありません。 つまり、挿入されたhtmlをラップするかどうかにかかわらず動作します。 重要な点は、それをng-bind-html属性に入れることです。作品:

関連する問題