首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular-translate清理失败,并显示UTF字符

angular-translate清理失败,并显示UTF字符
EN

Stack Overflow用户
提问于 2015-06-23 20:12:47
回答 2查看 9.6K关注 0票数 17

在带有最新版本的angular-translate的Angular 1.3.x上。使用$sanitize直接使用筛选器或服务似乎有问题,但使用指令时可以正常工作。

有什么建议吗?

下面是一个示例:

代码语言:javascript
复制
var myApp = angular.module('myApp', [ 'pascalprecht.translate', 'ngSanitize' ]);

myApp.config(function($translateProvider) {
    $translateProvider.useSanitizeValueStrategy("sanitize");
    $translateProvider.preferredLanguage('en');
    $translateProvider.translations('en', {
        UTF: 'öéü',
    });
});

myApp.controller("myCtrl", function($scope, $translate) {
    $translate("UTF").then(function(trans) {
        $scope.UTFCTRL = trans;
    });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular-sanitize.min.js"></script>
<script src="http://rawgit.com/PascalPrecht/bower-angular-translate/master/angular-translate.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
    <div>
        Wrong: <h1>{{ 'UTF' | translate }}</h1>
    </div>
    
    <div>
        Ok: <h1 translate="UTF"></h1>
    </div>
    
    <div>
        Wrong: <h1>{{ UTFCTRL }}</h1>
    </div>
</div>

在jsfiddle上:http://jsfiddle.net/gnvpo6aa/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-08 02:43:00

目前,您有两个选择:

  1. 使用策略sanitizeParameters,该策略将只清理动态参数,而不是实际的翻译(模板)。如果您控制了转换(但不是动态值),这将会起作用。
  2. 使用策略escape (或escapeParameters),该策略不使用清理,而是转义。

免责声明:我正在共同维护angular-translate。

编辑(12.01.2016):我创建了this matrix overview of all variants

票数 38
EN

Stack Overflow用户

发布于 2019-03-21 16:31:50

正如gitHub issue所说的

使用sce解决了这个问题

代码语言:javascript
复制
$translateProvider.useSanitizeValueStrategy("sce");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31002499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档