2016-04-13 7 views
0

Я пытаюсь изменить класс при щелчке и размытии в зависимости от ввода ввода или нет. Ниже мой код.angular js on click and on blur


          
  

 
     $scope.changeClassOnClick = function(event){ 
 
    \t \t  $scope.class = "active"; 
 
\t \t }; 
 
\t \t 
 
\t \t $scope.changeClassOnBlur = function(event,username){ 
 
        if(!username) 
 
\t \t \t  $scope.class = "large"; 
 
\t \t \t };

 
    .large{ 
 
    color:red 
 
    } 
 
    .active{ 
 
    color:blue 
 
}
 <div class = "large" ng-class="class"> 
 
\t \t \t <label class="label">Username</label> 
 
      <input class="field" name="username" type="text" ng-model="username" 
 
      ng-click="changeClassOnClick()" ng-blur="changeClassOnBlur(username)"></div> \t 
 
    

Когда что-то введено, я не хочу, чтобы класс был изменен. В противном случае класс должен измениться щелчком и щелчком. Что не так в моем коде?

Заранее благодарен.

+0

добавить ng-change = "changeClassOnBlur (имя пользователя)" также. –

+0

Я сделал, но не работает, как ожидалось. :(Я пробовал ng-change = "changeClassOnClick()" также, но не работает – user56690

ответ

0

Я получил то, что нужно сделать. Мне нужно ссылаться на имя пользователя. для, например: if (this.username)

0

Попробуйте это:

$scope.changeClassOnClick = function(){ 
    $scope.class = "active"; 
}; 

$scope.changeClassOnBlur = function(username){ 
    if(!username) 
     $scope.class = "large"; 
}; 
<div ng-class="class"> 
    <label class="label">Username</label> 
    <input class="field" name="username" type="text" ng-model="username" ng-click="changeClassOnClick()" ng-blur="changeClassOnBlur(username)"> 
</div> 

Я никогда не сталкивался с параметром события в методе нг-клик.

+0

Я пробовал, но не работает. Я также пробовал $ scope.changeClassOnBlur = function (username) { if (! $ Scope.username) $ scope.class = "large"; }; – user56690

+0

Попробуйте удалить класс = "большой", потому что я считаю, что это переопределяет желаемый результат. – Saleh