Javascript 使用UTF字符时角度转换清除失败

Javascript 使用UTF字符时角度转换清除失败,javascript,angularjs,sanitization,angular-translate,Javascript,Angularjs,Sanitization,Angular Translate,在Angular 1.3.x上使用Angular translate的最新版本。使用$sanitize直接使用过滤器或服务时似乎有问题,但在使用指令时有效 建议 以下是一个例子: var myApp=angular.module('myApp',['pascalprecht.translate','ngSanitize']); myApp.config(函数($translateProvider){ $translateProvider.useSanitizeValueStrategy(“消毒

在Angular 1.3.x上使用Angular translate的最新版本。使用
$sanitize
直接使用过滤器或服务时似乎有问题,但在使用指令时有效

建议

以下是一个例子:

var myApp=angular.module('myApp',['pascalprecht.translate','ngSanitize']);
myApp.config(函数($translateProvider){
$translateProvider.useSanitizeValueStrategy(“消毒”);
$translateProvider.preferredLanguage('en');
$translateProvider.translations('en'{
UTF:‘戥戥’,
});
});
控制器(“myCtrl”,函数($scope,$translate){
$translate(“UTF”)。然后(函数(trans){
$scope.UTFCTRL=trans;
});
});

错误:{{'UTF'| translate}}
好 啊:
错误:{{UTFCTRL}}

目前,您有两种选择:

  • 使用策略
    sanitizeParameters
    ,该策略将仅清理动态参数,而不会清理实际翻译(模板)。如果可以控制转换(但不能控制动态值),这将起作用
  • 使用策略
    escape
    (或
    escapeParameters
    ),该策略不使用消毒,而是使用逃逸
  • 免责声明:我将共同维护

    编辑(12.01.2016):我创建了。

    如中所述

    使用sce解决了这个问题

    $translateProvider.useSanitizeValueStrategy("sce");
    

    这是一个用于翻译筛选器的WONTFIX,至少::')(我对筛选器和服务都有问题。通过问题1011找到了这一点,感谢您的解决方案和插件!使用
    sanitize
    作为策略,UTF-8字符在与
    translate=“KEY”一起使用时似乎有效
    attribute。这是因为当使用translate指令时,sanitize不起作用……甚至html标记也起到了类似的作用usual@knalli:很好的矩阵,但似乎
    null
    策略与'sce'具有相同的效果one@knalli@LucasCimon关于Lucas对策略的评论
    null
    sce
    行为e在矩阵中也是一样。我看到从1.2版开始,AngularJS默认支持SCE。因此,这可能就是为什么
    null
    SCE
    工作相同的原因。是吗?