2014-02-07 183 views
0

是否有在的形式定義每個文本框NG-最大長度佔位符屬性

的佔位符文本的簡單方法:

「請輸入最大X個字符的」,其中X是內容NG-MAXLENGTH

還是我必須把它寫手動那樣:

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

我已經30個+存在輸入的形式,我想添加的佔位符EA他們(這將是偉大的做不手動)。

回答

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-control類和ng-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

+0

不需要'angular.element(e)'和'el.hasClass('form-control')' –

+0

你是對的,我在早晨喝咖啡之前就做了這個! – lucuma

+0

真棒,謝謝! –