2016-11-13 4 views
0

Ich habe eine Direktive, die ich benutze, um Text einer Eingabe in uppercase zu ändern, es funktioniert gut, aber jetzt möchte ich den Text capitalize zeigen, wenn Benutzer Typ, möchte ich den Text Großbuchstaben zu halten, aber um Benutzer zu zeigen sollte kapitalisieren. Um dies zu tun, habe ich eine CSS-Klasse erstellt, aber ich weiß nicht, wie ich dieses CSS in Direktive verwenden soll.Wie fügt man eine Klasse CSS in die Direktive ein?

Wie könnte ich diese CSS-Klasse in Richtlinie hinzufügen?

versuchen.

CSS

.textCapitalize { 
    text-transform: capitalize; 
} 

Richtlinie

var app = angular.module('starter'); 

app.directive('uiUppercase', function(){ 

    return { 
     require:'ngModel', 
     link: function(scope, element, attr, ctrl){   
      element.addClass('textCapitalize'); //show text capitalized 
      var _textFormat = function(input){ 
       return input.length > 0 ? input.toUpperCase() : ""; 
      } 

      element.bind('keyup', function(){ 
       ctrl.$setViewValue(_textFormat(ctrl.$viewValue));    
       ctrl.$render(); 
      }); 

     } 

    }; 

}); 
+1

Wenn Sie die Klasse Kapital hinzufügen, seine bereits Kapital zu sein. Wollen Sie den Modellwert im Hintergrund groß und für den Benutzer nicht sichtbar darstellen? – Sreekanth

+0

Genau, ich möchte den Wert Großbuchstaben im Hintergrund bleiben, aber für den Benutzer ist Wert als Großschreibung sichtbar. – FernandoPaiva

Antwort

0

Try this:

app.directive('uiUppercase', function() { 
    return { 

     restrict: 'A', 
     require: 'ngModel', 

     link: function(scope, element, attr, ctrl) { 

     function addUpperCaseClass(ngModelValue) { 

      if(!element.hasClass("textCapitalize")) 
       element.addClass("textCapitalize"); 
     } 
     ctrl.$parsers.push(addUpperCaseClass); 

     } 
    }; 
}); 
Verwandte Themen