【发布时间】:2020-05-09 00:33:52
【问题描述】:
我正在尝试将 HTML 字符实体作为数据属性输出,以便可以使用 css 伪元素按我的意愿显示它。
当我们在 HTML 中直接分配属性的值时这有效,但当我们使用 angular 绑定值时无效。
下面是示例代码:
var app = angular.module('test', []);
app.config(function($sceProvider) {
// Completely disable SCE. For demonstration purposes only!
// Do not use in new projects.
$sceProvider.enabled(false);
});
app.controller('testCtrl', ['$scope',
function($scope) {
$scope.symbol = "\00a9";
$scope.symbol1 = "©";
}
])
.copy::before {
content: attr(data-symbol);
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test" ng-controller="testCtrl">
<div class="copy" data-symbol="©">working</div>
<div class="copy" data-symbol="{{symbol}}">not working</div>
<div class="copy" data-symbol="{{symbol1}}">also not working</div>
</div>
如您所见,我也尝试完全禁用 $sce(出于测试目的)。
但这也没有用。
应用程序中的这些符号太多了,因此为每个符号生成一个 DOM 元素似乎不是一个好主意。
有没有办法做到这一点..?
【问题讨论】:
-
将是一个简单的指令插入为 html ......为什么这不是一个好主意?
-
@GOTO0
\00a9是 brajeshwar.github.io/entities 的 css 等效项 -
@GOTO0
"\u00a9"似乎是unicode sequence for c/c++/java 但确实有效...您能否发布一个答案并附上参考在哪里可以找到这些...?!
标签: javascript html css angularjs