スコープ変数のデータをng-bind-htmlとしてバインドしようとしているhtmlにバインドすることは可能ですか?
つまり、私は
html ="<div>{{caption}}</div>";
そして私のangularテンプレートは次のようになります、
<div ng-bind-html="html"></div>
スコープ変数caption
の値はangularコントローラーに設定されます。
そこで、{{caption}}
でデータをバインドしたいと思います。
前もって感謝します..
$ compileではなく$ interpolateを使用する必要があります。
コントローラーを次のように記述します。
angular.module('app', ['ngSanitize'])
.controller('MyCtrl', ['$scope', '$interpolate', function($scope, $interpolate){
$scope.caption = 'My Caption';
$scope.html = $interpolate('<div>{{caption}}</div>')($scope);
});
次に、次のようにHTMLを記述します。
<div ng-controller="MyCtrl">
<div ng-bind-html="html"></div>
</div>
HTMLスニペットをコンパイルする必要がありますが、ディレクティブ内でコンパイルすることをお勧めします。
app.controller('MyCtrl', function($compile){
$scope.caption = 'My Caption';
$scope.html = $compile('<div>{{caption}}</div>')($scope);
});
<div ng-bind-html="html"></div>