因此,对于这个示例,我有一个使用 $http 检索的字符串列表,这些字符串可以连续包含多个空格,为了正确显示,我需要将字符串替换为 nbsp html 实体。对用户提供的字符串进行清理也很重要。什么是最简单的方法来保持 $sce 启用到字符串被正确清理的位置,但完成之后,用 nbsp 实体替换任何空格并使其正确显示,而不是作为文字 nbsp?
我组装了一个jsfiddle。我正在尝试使带有 Hello 的字符串和单词中的一组空格按原样显示,但我不希望 b 实体标记以实际粗体显示,我希望它被清理/转义并且像平常一样显示为文本 html 标签。
<div ng-app='myApp' ng-controller="Controller">
<ul>
<li ng-repeat="item in items" ng-bind-html="item | includespaces">
<!--{{ item }}-->
</li>
</ul>
var app = angular.module('myApp', []);
app.controller('Controller', function ($scope, $sce) {
// Assume this is data from $html.
$scope.items = ['He llo', 'Testing<b>bold</b>', 'bleh'];
});
app.filter('includespaces', ['$sce', function ($sce) {
return function (text) {
//return $sce.getTrustedHtml(text);
return $sce.trustAsHtml(text.replace(/ /g, " "));
}
}]);
最佳答案
关于javascript - 如何允许特定的 html 实体在 ng-repeat 中显示,同时清理其余实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32326658/