【问题标题】:Angular translate: placeholder not showing special characters correctly角度翻译:占位符未正确显示特殊字符
【发布时间】:2015-12-03 05:54:36
【问题描述】:

我目前正在为一个项目使用 angular-translate,而且进展非常顺利。但是我遇到了一个问题,我不明白为什么它不起作用。我有一个带有占位符文本的输入字段,必须翻译。这可以正常工作,除非翻译文本包含特殊字符,例如 øæåüöä 等。

这是我的代码:

<input type="text" ng-model="search.query" autofocus translate-attr-placeholder="SEARCHPLACEHOLDER" translate />
<div translate>SEARCHPLACEHOLDER</div>

设置为英文时输出:

<input placeholder="Search for magazines" (rest omitted)>
<div class="ng-scope" translate="">Search for magazines</div>

但是,当我将其设置为丹麦语时,它会输出:

<input placeholder="S&#248;g i indholdet af magasiner..." (rest omitted)>
<div class="ng-scope" translate="">Søg i indholdet af magasiner...</div>

如您所见,angular 可以正确翻译

中的文本,但它会在输入元素中输出转义字符。
søg 

变成

s&#248;g

我在 API 中找不到任何内容。我错过了什么?

【问题讨论】:

  • 我刚刚解决了它,删除了我的消毒策略:$translateProvider.useSanitizeValueStrategy(null); 然而,这似乎是一个糟糕的解决方案。另外我不明白为什么属性和内容会被不同地清理?
  • 感谢您的提示。它也对我有用。找到其他解决方案了吗?
  • 遗憾的是没有。当我找到解决方案时,我会更新问题。

标签: javascript angularjs encoding utf-8 angular-translate


【解决方案1】:

要显示特殊字符,请使用$sce(严格上下文转义)

这是工作的JSFIDDLE

希望它有效:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 2013-02-24
    • 2015-07-05
    相关资源
    最近更新 更多