在AngularJS中,插值表达式默认会将HTML标签作为纯文本进行处理,不会解析其中的HTML标签。然而,你可以使用ng-bind-html
指令来解决这个问题。这个指令可以解析HTML标签,并将其插入到DOM中。
首先,确保你已经引入了ngSanitize
模块,这个模块提供了ng-bind-html
指令。
然后,在你的HTML模板中,使用ng-bind-html
指令来替代插值表达式。例如:
在控制器中,将HTML代码赋值给$scope.myHTML
变量。例如:
var app = angular.module('myApp', ['ngSanitize']);
app.controller('myCtrl', function($scope) {
$scope.myHTML = 'Hello, AngularJS!
';
});
注意:为了防止XSS攻击,AngularJS默认会对使用ng-bind-html
指令的内容进行安全过滤。如果你确定插入的HTML是安全的,可以使用$sce.trustAsHtml
方法来告诉AngularJS信任这段HTML代码。例如:
app.controller('myCtrl', function($scope, $sce) {
$scope.myHTML = $sce.trustAsHtml('Hello, AngularJS!
');
});
这样就可以在插值中解析HTML标签了。请注意,只有当HTML代码被信任时,AngularJS才会解析它。