AngularJS Example:
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-sanitize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bower-angular-translate/2.7.2/angular-translate.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<div
ng-app="myApp"
ng-controller="AppCtrl">
<div data-ng-bind-html="'tx_B' | translate | aabTrustedHtml"></div>
<div data-ng-bind-html="testbind | aabTrustedHtml"></div>
</div>
JavaScript
var app = angular.module('myApp', ['pascalprecht.translate', 'ngSanitize']);
app.config(['$translateProvider', function($translateProvider) {
$translateProvider.translations('en', {
'tx_A': 'C Alfa',
'tx_B': 'D Bravo <h2> abcd </h2><script>alert(\'Hi\')</script>',
'tx_C': 'F Charlie',
'tx_D': 'A Delta',
'tx_E': 'B Echo',
'tx_F': 'E Foxtrot'
});
$translateProvider.preferredLanguage('en');
$translateProvider.useSanitizeValueStrategy('sanitize');
}]);
app.filter('aabTrustedHtml', aabTrustedHtml);
function aabTrustedHtml($sce) {
return function(text) {
/* console.log("--text-->",text);
console.log("--aabTrustedHtml-->",$sce.trustAsHtml(text));*/
return $sce.trustAsHtml(text);
};
}
app.controller('AppCtrl', ['$scope', '$filter', '$translate', function($scope, $filter, $translate) {
$scope.testbind = "<h1>aa</h1>";
$scope.quesLabel = $translate.instant('tx_B','sce');
//debugger;
console.log("quesLabel-->",$scope.quesLabel);
/*$scope.translated = function(key) {
return $filter('translate')('tx_' + key).toString();
};*/
//$scope.chars = ['A', 'C', 'B', 'D', 'F', 'E'];
}]);
/*app.filter('orderByTranslated', ['$translate', '$filter', function($translate, $filter) {
return function(array, i18nKeyPrefix, objKey) {
var result = [];
var translated = [];
angular.forEach(array, function(value) {
var i18nKeySuffix = objKey ? value[objKey] : value;
translated.push({
key: value,
label: $translate.instant(i18nKeyPrefix + i18nKeySuffix)
});
});
angular.forEach($filter('orderBy')(translated, 'label'), function(sortedObject) {
result.push(sortedObject.key);
});
return result;
};
}]);*/