2016-05-25 7 views
0
$scope.message = '<p>test text</p>'; 
var html = '<div>{{::message}}</div>'; 

$scope.$apply(function() { 
    $compile(html)($scope, function (cloned, scope) { 
     $compile(cloned)(scope, function (clonedTwo, scopeTwo) { 
      angular.element(myDiv).append(clonedTwo); 
     }); 
    }); 
}); 

をコンパイルしていないこれは、以下を示すdiv要素になり:AngularJSは、HTML

enter image description here

私はそれをコンパイルするとき、それは正しくそれをしないことを実現します。しかし、私が2度コンパイルしようとすると効果はありません。

これを修正するには、テンプレートをコンパイルして生のHTMLを返し、そのHTMLを第2のコンパイルで使用する必要があります。

プレーンhtmlをレンダリングする方法がありますか?

答えて

2

私が探していた方法は$interpolateでした。

$scope.message = '<p>test text</p>'; 
var html = '<div>{{::message}}</div>'; 

var inter = $interpolate(html)($scope); 

$scope.$apply(function() { 
    $compile(inter)($scope, function (cloned, scope) { 
     angular.element(myDiv).append(cloned); 
    }); 
}); 
関連する問題