根据区域设置更改占位符值 - angularJS

时间:2015-06-23 04:00:05

标签: angularjs localization

角度定位是否提供了这个: 占位符值是否可以根据区域设置而变化? 我有placeholder="mm/dd/yyyy"的输入控件。对于德语,它应该更改为placeholder="TT/MM/JJJJ"。我们应该为此编写一个过滤器吗?或Angular语言环境提供它?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您只想在德国和世界其他地方之间切换,您可以在控制器中找到特定的内容:

<input placeholder="{{getLocalePlaceholder()}}">

控制器:

$scope.getLocalPlaceholder = function() {
  if ($local.id === 'de-de') {
    return 'TT/MM/JJJJ';
  }
  return 'mm/dd/yyyy';
}

如果你想更通用,我建议你写一个使用$locale的指令和all known locals的列表。

app.directive('placeholderByLocale', ['$locale', function($locale) {
  return {
    link: function($scope, $element, attrs)  {
      function getLocaleFormat() {
        switch ($locale.id) {
          case 'de-de':
            return 'TT/MM/JJJJ';
          default:
            return 'mm/dd/yyyy';
        }
      }

      attrs.$set('placeholder', getLocaleFormat());
    }
  }
}])

See Plunker

您还可以考虑将Date.toLocaleDateString与实际日期结合使用。大多数用户将从示例中快速正确地推断出日期格式。

请记住,浏览器的区域设置并不总是指示用户的位置。