2016-07-04 1 views
0

Привет у меня есть код следовать:Дайте новый класс Нг-класса с переменным значением

angular.module("myApp", []).controller("myController", function($scope) { 
 
    $scope.fieldSize = "cInputLarge"; //Change for the effect to -> cInputMedium, cInputLarge 
 
});
.cDefault { 
 
    width: 50px; 
 
} 
 
.cInputMedium { 
 
    width: 100px; 
 
} 
 
.cInputLarge { 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="myController"> 
 
    <input class="cDefault" ng-class="{{fieldSize}}"> 
 
    <br> 
 
    <br>{{fieldSize}} 
 
</div>

Моя цель состоит в том, чтобы дать на вход имя класса, который изменяет его ширину. Я знаю, как ng-класс работает с условиями, но возможно ли подобное подобное (чтобы дать имя класса в ng-классе и он принимает его свойства)?

Спасибо и привет.

ответ

1

Просто используйте имя переменной, оно должно быть достаточно:

angular.module("myApp", []).controller("myController", function($scope) { 
 
    $scope.fieldSize = "cInputLarge"; //Change for the effect to -> cInputMedium, cInputLarge 
 
});
.cDefault { 
 
    width: 50px; 
 
} 
 
.cInputMedium { 
 
    width: 100px; 
 
} 
 
.cInputLarge { 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="myController"> 
 
    <input class="cDefault" ng-class="fieldSize"> 
 
    <br> 
 
    <br>{{fieldSize}} 
 
</div>

+0

Привет, спасибо за ответ, он работает! Я буду отмечать его как правильный ответ как можно скорее. Ура! – MrBuggy

0

Да, это правильно. Вы можете связываться с областью переменной

+0

Привет, но посмотрите на мой фрагмент ... это все еще 50px, а не 200px из связанного класса ...? – MrBuggy

+0

Я проверил его ширина: 200 пикселей; –

0

Или попробуйте этот

<input class="cDefault" ng-class="{{'fieldSize'}}"> 
Смежные вопросы