我知道这里曾经被问过,但是没有一个答案似乎适用于我的情况
我买了这个主题Angle,它与Angular 1.4.2和Angular翻译2.6.0(甚至更新到最后的2.7.2)
默认情况下,模板上有“翻译”模块
这是配置文件
$translateProvider.useStaticFilesLoader({
prefix : 'app/i18n/',suffix : '.json'
});
$translateProvider.preferredLanguage('es');
$translateProvider.useLocalStorage();
$translateProvider.usePostCompiling(true);
// Enable escaping of HTML
$translateProvider.useSanitizeValueStrategy('sanitize'); // I added this line based on Docs wasn't before
并以JSON格式翻译文件
{
"page": {
"PAGES_WELCOME" : "Welcome to <br> MY APPLICATION,hey THERE IS A BR TAG BEFORE ME"
},"login": {
.
.
.
.
},
但是,我无法在文本中的JSON文件中添加HTML标签,而不是获取
欢迎来到
我的APP
我越来越
欢迎来到< br>我的APP
我如何解决这个问题?
编辑
我不想删除标签,我的JSON文件被后端修改,它可以并将包含HTML标签,我希望这些标签在输出上工作.
JADE示例内容是绑定的
div(class="col-lg-4 col-md-4 col-sm-4 col-xs-12 footer-left")
p(class="text-center")
{{ 'page.PAGES_WELCOME' | translate }}
解决方法
在插值期间角度消除任何html字符串.
为了解决这个问题,您需要在注入之前在$sce中将HTML标记为安全.然后用ngBindHtml输出html.
为了解决这个问题,您需要在注入之前在$sce中将HTML标记为安全.然后用ngBindHtml输出html.
我以前没有使用过角度翻译,但这可能会起作用:
//app is the main module
app.filter("htmlSafe",['$sce',function($sce) {
return function(htmlCode){
return $sce.trustAsHtml(htmlCode);
};
}]);
//then to output it
<span data-ng-bind-html="'page.PAGES_WELCOME' | translate | htmlSafe"></span>