占位符属性中的ng-maxlength

时间:2014-02-07 12:42:05

标签: angularjs

是否有一种简单的方法可以为每个文本框定义占位符文本

以下列形式:

“请输入最多X个字符”,其中X是ng-maxlength的内容

或者我必须手动编写它:

<input class="form-control" ng-model="valueBag.test" 
    ng-maxlength="30"
    placeholder="Please enter a maximum of 30 Chars">

我已经有一个包含30多个现有输入的表单,我想在每个表单中添加占位符(这不是手动操作)。

1 个答案:

答案 0 :(得分:2)

我认为你可以创建一个简单的指令:

app.directive('formControl', function() {
  return {
    restrict: 'C',
     link: function(scope, e, attr) {
         var el = e;
         if (attr['ngMaxlength']) {
             el.attr('placeholder', 'Please enter a maximum of ' + attr['ngMaxlength'] + ' Chars')
         }
     }
  }
});

这适用于设置了form-controlng-maxlength类的任何元素。

演示:http://plnkr.co/edit/m1K49L2pHAHaAmfXrrk6?p=preview

你可能会因创建一个输入元素指令而失败,所以不需要这个类:

app.directive('input', function() {
  return {
    restrict: 'E',
     link: function(scope, e, attr) {
         var el = e;
         if (attr['ngMaxlength']) {
             el.attr('placeholder', 'Please enter a maximum of ' + attr['ngMaxlength'] + ' Chars')
         }
     }
  }
});

关于指令的角度帮助文档现在很棒(过去不是这样):http://docs.angularjs.org/guide/directive