AngularJS данные связываются в ng-bind-html?
Можно ли привязать данные переменной области к html, который собирается связать как ng-bind-html?
то есть у меня есть
html ="<div>{{caption}}</div>";
и мой угловой шаблон выглядит,
<div ng-bind-html="html"></div>
значение переменной области caption
устанавливается в угловой контроллер.
Итак, я хочу связать данные в {{caption}}
,
Заранее спасибо..
3 ответа
Вы должны использовать $interpolate, а не $compile.
Напишите контроллер так:
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>