2016-11-13 120 views
0

我有一个指令,我用它来改变输入的文本uppercase,它工作正常,但现在我想显示文本capitalize当用户类型,请注意,我想保持文本大写,但要显示给用户它应该被大写。要做到这一点,我创建了一个CSS类,但我不知道如何使用此CSS入指令。如何将css类添加到指令?

我该如何将这个css类加入指令?

尝试。

CSS

.textCapitalize { 
    text-transform: capitalize; 
} 

指令

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

如果添加了利用类,它已经被利用。你的意思是大写在背景的模型值和用户不可见? – Sreekanth

+0

准确地说,我希望该值在背景上保持大写,但是对于用户而言,值是可见的,因为大写。 – FernandoPaiva

回答

0

试试这个:

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); 

     } 
    }; 
});