似乎ng-bind-html渲染'</'
像一个关闭标签,所以它已经被清理了,字符串已经通过,但它在html中呈现为关闭标签,这意味着什么都没有显示。 例如,"我发现</
是一件好事",如果我将字符串绑定到它上面,</
之后的所有内容都会被切断, 它只在网页中显示"我找到">
(附加( 问题实际上是我们同时混合使用 html 编码和 url 编码,现在,前端的输入就像"</
很好",然后有一个服务对其进行编码,编码后,它变成"<%2F 很好",在它进入数据库之前,它变成了"
将'<'
更改为'<'
按预期工作:
angular.module("app",[])
.controller("ctrl", function($scope,$sce) {
$scope.text = "I find </ is a good thing";
$scope.trust = $sce.trustAsHtml($scope.text);
})
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="app" ng-controller="ctrl">
<h2>Using ng-bind-html</h2>
<p ng-bind-html="trust"></p>
<h2>Using ng-bind</h2>
<p ng-bind="text"></p>
</body>
有关详细信息,请参阅
- MDN HTML 参考 - 实体
- AngularJS
ng-bind-html
指令 API 参考