目前我正在尝试构建一个社区页面,用户可以在其中以井文本格式提供文章。我的后端是cakephp,前端是angular-js 如何以格式良好的html样式存储文本,例如我想要存储在Mysql中的输入文本
<b> hello </b><br/>
<em>world </em>
当我从表输出中获取文本时必须像
你好
世界
更新: -
它应该也适用于内联CSS,如果有可能那么它很棒。
<div style="color:#D2691E">hiiii</div>
我不需要实现花哨的animation-css标签,但它应该支持基本的CSS。
提前谢谢
答案 0 :(得分:0)
您可以使用ngBindHtml指令,但必须先包含$sanitize服务并将ngSanitize
作为应用程序模块的依赖项。
还使用$sce实现了trusted
过滤器,这是一种为AngularJS提供严格上下文转义服务的服务。
严格上下文转义(SCE)是一种模式,AngularJS在某些上下文中需要绑定才能生成一个标记为可安全用于该上下文的值。
代码:
angular
.module('myApp', ['ngSanitize'])
.filter('trusted', ['$sce', function($sce) {
return function(str) {
return $sce.trustAsHtml(str);
};
}])
.controller('myController', function($scope) {
$scope.myHTML = '<b>hello</b><br/><em>world</em>';
$scope.myHTMLStyled = '<div style="color: #D2691E">hiiii</div>';
});
&#13;
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-sanitize.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
<div ng-bind-html="myHTML"></div>
<div ng-bind-html="myHTMLStyled | trusted"></div>
</div>
&#13;