Я согласен с @ sourav-satyam , что если единственное, что контроллер добавляет в HTML, это переменные области видимости, то лучше всего это сделать с помощью директивы ng-bind-html
, Команда AngularJS приняла намеренное решение не компилировать директивы AngularJS в контроллере, а также с помощью HTML из директивы ng-bind-html
. Он вводит риски безопасности, которых лучше избегать.
Единственное, что я бы сделал по-другому, - это использование литерала шаблона :
$scope.firstName = $sce.trustAsHtml(`<h1>${$scope.variable}</h1>`);
DEMO
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $sce) {
$scope.variable = 'test'
$scope.firstName = $sce.trustAsHtml(`<h1>${$scope.variable}</h1>`);
});
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">
<div ng-bind-html="firstName"></div>
</body>