Чтобы отобразить элементы HTML из строковой переменной на странице JSP с помощью AngularJS, вы можете использовать несколько подходов. Вот несколько способов:
-
Использование директивы ng-bind-html: AngularJS предоставляет директиву ng-bind-html, которая позволяет привязывать HTML-контент из строковой переменной к элементу. Однако из соображений безопасности эта директива требует включения в ваше приложение модуля «ngSanitize».
<div ng-bind-html="htmlVariable"></div>В раздел контроллера или скрипта вам необходимо внедрить модуль «ngSanitize» и присвоить HTML-содержимое переменной «htmlVariable».
angular.module('myApp', ['ngSanitize']) .controller('myController', function($scope) { $scope.htmlVariable = '<p>This is HTML content.</p>'; });Обязательно включите файлы сценариев AngularJS и ngSanitize на свою страницу JSP.
-
Использование сервиса $sce: AngularJS предоставляет сервис $sce, который можно использовать для пометки HTML-контента как доверенного, а затем привязать его к элементу.
<div ng-bind-html="trustedHtml"></div>В разделе контроллера или скрипта вы можете использовать функцию «$sce.trustAsHtml», чтобы пометить HTML-контент как доверенный.
angular.module('myApp', []) .controller('myController', function($scope, $sce) { $scope.htmlVariable = '<p>This is HTML content.</p>'; $scope.trustedHtml = $sce.trustAsHtml($scope.htmlVariable); });Не забудьте включить файл сценария AngularJS на свою страницу JSP.
-
Использование пользовательской директивы. Вы можете создать пользовательскую директиву, которая берет HTML-содержимое из строковой переменной и вручную компилирует его для отображения в формате HTML.
<div my-directive="htmlVariable"></div>В определении директивы вы можете использовать службу $compile для компиляции HTML-содержимого и связывания его с элементом.
angular.module('myApp', []) .directive('myDirective', function($compile) { return { restrict: 'A', link: function(scope, element, attrs) { scope.$watch(attrs.myDirective, function(htmlContent) { element.html(htmlContent); $compile(element.contents())(scope); }); } }; });В разделе контроллера или скрипта назначьте HTML-содержимое переменной «htmlVariable».
angular.module('myApp', []) .controller('myController', function($scope) { $scope.htmlVariable = '<p>This is HTML content.</p>'; });Убедитесь, что файл сценария AngularJS включен в вашу страницу JSP.