【问题标题】:Passing expression not result to directive将表达式而不是结果传递给指令
【发布时间】:2015-09-28 00:03:29
【问题描述】:

我使用很棒的库 angucomplete-alt。它在后台创建input。我想翻译这个输入占位符。

在我的应用程序中,我使用anular-translate 进行翻译。这个库使用translate 过滤器。对于常规占位符,我可以使用

<input placeholder="{{MY-KEY | translate}}">

但是这里我有一个指令,它接受属性然后传递给input

<angucomplete-alt id="ex1"
              placeholder="{{MY-KEY | translate}}"/>

所以我需要传递表达式而不是其结果,因为我需要不时更改语言的能力,并且每次都会调用翻译过滤器

如何传递这样的值?

【问题讨论】:

  • 我不明白你想做什么。向我们展示您的指令代码。
  • 这不是我的指令,它是 ,我会更新我的问题
  • 这里“传递表达式而不是结果”的原因是什么?
  • 因为我需要不时更改语言的能力,并且每次都会调用翻译过滤器
  • 不应该那样做。您在问如何找到潜在的解决方案(顺便说一句,这是不正确的)。这是一个 XY 问题。

标签: javascript angularjs angularjs-directive angular-translate


【解决方案1】:

angucomplete-alt(以及任何其他明智的指令)使用数据绑定将属性转换为子元素。这意味着每次MY-KEY 更改时,插入的"{{MY-KEY | translate}}" 值将分配给input 的占位符属性。如果 translate 过滤器的行为已更改但 MY-KEY 未更改,它肯定不会起作用。

切换translate过滤器的语言后,执行$rootScope.$apply()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2023-03-15
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2015-08-03
    • 2020-02-25
    相关资源
    最近更新 更多