使用 angular-translate 设置占位符值 onblur

Use angular-translate to set placeholder value onblur

我是 Angular 的新手。 在项目中实施本地化。我有很多输入,我必须翻译占位符。在 HTML 我有这样的东西

<input  type="email" placeholder="{{ 'TRANSLATION_KEY' | translate }}" onfocus="this.placeholder=''" onblur="this.placeholder='{{ 'TRANSLATION_KEY' | translate }}'" required>

但这部分代码不起作用:(

onblur="this.placeholder='{{ 'TRANSLATION_KEY' | translate }}'"

如何将翻译值设置为占位符onblur? 我会很感激任何帮助!

这是解决问题的好方法JSFiddle:

HTML:

<div ng-app="myApp" ng-controller="myCtrl">
    <input  type="email" placeholder="{{placeholder}}" ng-focus="setPlaceholder()" ng-blur="setPlaceholder('TRANSLATION_KEY')" required>
</div>

JS:

angular.module('myApp', [])
.controller('myCtrl', function ($scope, $filter) {
    $scope.placeholder = $filter('translate')('TRANSLATION_KEY');

    $scope.setPlaceholder = function (data) {
        $scope.placeholder = $filter('translate')(data);
    };
})
.filter('translate', function () {
    return function (data) {
        return data;
    };
});

我有另一个解决方案。更通用,更简单。只需将此行添加到视图中的输入即可

onfocus="this.ph=this.placeholder;this.placeholder=''" onblur="this.placeholder=this.ph"