【问题标题】:Nesting quotes in Angular expression在 Angular 表达式中嵌套引号
【发布时间】:2015-05-09 05:51:56
【问题描述】:

在 .js 文件中,三重嵌套引号 ("one'two"three"'") 可以转义 (see this post),而在 HTML 中,这也可以使用字符引用 (see this post) 来实现。我在模板中的 AngularJS 表达式中实现这一点时遇到问题。

我需要把这个:

{{ 'PLURAL' | translate:"{ GENDER: 'male' }":"messageformat" }}

放入占位符元素:

<input placeholder="{{ 'PLURAL' | translate:"{ GENDER: 'male' }":"messageformat" }}">

我应该如何转义引号以使其正常工作?

【问题讨论】:

  • 您确定您的翻译过滤器需要用引号括起来的对象吗?看起来很奇怪
  • 你是对的,过滤器不需要它。谢谢!

标签: javascript html angularjs


【解决方案1】:

答案将被放在某个范围变量中 { GENDER: 'male' } 然后在你的插值指令表达式中使用它,这将更好地简化你的转义。

标记

<div ng-init="maleFilter = { GENDER: 'male' }">
   <input ng-attr-placeholder="{{ 'PLURAL' | translate: maleFilter : 'messageformat' }}">
<div>

希望对你有帮助,谢谢。

【讨论】:

  • 不,将非插值字符串打印到第一个转义符上,如下所示:{{ 'PLURAL' |翻译:\
  • 很酷的东西。虽然不是问题的答案。
  • @JesseBuitenhuis 你可以添加一些代码,以便我们可以使用它并帮助你找到正确的答案..
【解决方案2】:

供日后参考。这些 Angular Translate docs 让我感到困惑。

有效的格式是:

placeholder="{{ 'PLURAL' | translate:{gender:'male'}:'messageformat' }}"

【讨论】:

  • 您是否将placeholder 放入和作用域变量中?
  • 抱歉 - 更新了我的答案,使其与原始问题相对应。我之前的回答中的placeholder 绑定到一个范围变量。
  • 它看起来与我在回答中的第二个建议相同..只是我将{gender:'male'} 纳入范围变量
  • 但是你的答案的第一个版本是不正确的 - 你能更新一下,我会标记为 anwered。
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 2021-11-19
  • 1970-01-01
相关资源
最近更新 更多