mcc*_*inz 16 javascript string angularjs
给定$ scope模型中包含HTML实体的字符串,如何确保实体正确显示为HTML字符而不是文字字符串?
http://plnkr.co/edit/0BliljcDkj0vvj3jdEqz?p=preview
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@*"
data-semver="1.2.13"
src="http://code.angularjs.org/1.2.13/angular.js"></script>
</head>
<body>
<div ng-controller="htmlChar">{{title}}</div>
<script>
angular.element(document).ready(function(){
var app=angular.module("app",[]);
app.controller("htmlChar",function($scope){
$scope.title = "© Acme";
});
angular.bootstrap(document, ['app']);
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Dan*_*nez 16
你并不需要$sce绑定到与HTML字符串.您只需要注入ngSanitize您的应用程序(它不是核心模块),然后使用ng-bind-html属性指令.
JavaScript的
var app = angular.module('app', ['ngSanitize']);
app.controller('MainCtrl', function($scope) {
$scope.title = '½ Cookies & <span class="cream">Cream</span>';
});
Run Code Online (Sandbox Code Playgroud)
HTML
<div ng-bind-html="title"></div>
Run Code Online (Sandbox Code Playgroud)
rom*_*ger 14
随着$ sce.你需要明确告诉angular内容是html.
<div ng-controller="htmlChar" ng-bind-html="title"></div>
<script>
angular.element(document).ready(function(){
var app=angular.module("app",[]);
app.controller("htmlChar",function($scope, $sce){
$scope.title = $sce.trustAsHtml("© Acme");
});
angular.bootstrap(document, ['app']);
});
</script>
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/9iNnRC7AxFptnQZLPtYR?p=preview