在输入

时间:2016-05-10 12:30:56

标签: html angularjs angular-ngmodel angularjs-ng-model

我试图翻译input中的值。当我需要翻译时,输入被禁用,因此用户无法在文本框中键入文本。数据使用ng-model输入,目前看起来像这样:

<input ng-model="reason" ng-disabled="true" type="text" class="form-control" name="reason">

我还尝试过以下方法:

<input ng-model="reason|translate" ng-disabled="true" type="text" class="form-control" name="reason">
<input ng-model="{{ reason | translate}}" ng-disabled="true" type="text" class="form-control" name="reason">

但它们都没有奏效。

我可以翻译控制器中的值,但是我想在html标签中执行此操作,因此范围上的实际值不会被更改。 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我得到了这个例子:考虑一个你想要翻译的是或否值的输入。在模板中尝试单向数据绑定:

<input value="{{ answer | translate }}"
    type="text" class="form-control" name="answer"
    (change)="answerChanged($event)">

如果您还想更新该值,请侦听组件中的更改:

  answerChanged(Event event) {
      this.answer = event.target.value.toUpperCase();
  }

关于i18n文件。

en.json:

{
  "YES": "Yes",
  "NO": "No"
}

fr.json:

{
  "YES": "Oui",
  "NO": "Non"
}

Plunker:

http://plnkr.co/edit/BeYBAWG57eIZOU3KdBCD

答案 1 :(得分:0)

您可以将ng-value用于输入而不是HTML输入&gt;值。然后你可以轻松翻译它们:

<input ng-value="ctrl.reason | translate" ng-model="ctrl.reason">