2016-11-13 11 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); 

     } 
    }; 
}); 
関連する問題