Com AngularJS
estou usando ng-class
da seguinte maneira:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/>
Gostaria de saber se posso usar a if-else
expressão para fazer algo semelhante a este:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/>
Então, sempre que call.State
difere first
ou second
use classC
e evite especificar cada valor?
ng-class="{'class1': ##condition1## , 'class2': ##condition2## }"
como você pode ver na pergunta acimavocê pode tentar usar uma função como essa:
Em seguida, coloque sua lógica na própria função:
Eu fiz um violino com um exemplo: http://jsfiddle.net/DotDotDot/nMk6M/
fonte
Eu tive uma situação em que eu precisava de duas declarações 'if' que pudessem se tornar verdadeiras e uma 'else' ou padrão, se nenhuma delas fosse verdadeira, não tenho certeza se isso é uma melhoria na resposta de Jossef, mas me pareceu mais limpo:
Onde value.one e value.two são verdadeiros, eles têm precedência sobre a classe .else
fonte
Claramente ! Podemos criar uma função para retornar um nome de classe CSS com o seguinte exemplo completo.
CSS
JS
E depois
Você pode consultar a página de códigos completa na classe ng, por exemplo
fonte
As soluções acima não funcionaram para mim para aulas com imagens de fundo de alguma forma. O que fiz foi criar uma classe padrão (a que você precisa mais) e definir class = 'defaultClass' e, em seguida, a classe ng = "{class1: abc, class2: xyz}"
PS: As classes que estão em condições devem substituir a classe padrão, ou seja, marcadas como! Important
fonte
Esta é a melhor e mais confiável maneira de fazer isso. Aqui está um exemplo simples e, depois disso, você pode desenvolver sua lógica personalizada:
fonte
Uma solução alternativa minha é manipular uma variável de modelo apenas para a alternância da classe ng:
Por exemplo, eu quero alternar a classe de acordo com o estado da minha lista:
1) Sempre que minha lista estiver vazia, atualizo meu modelo:
2) Sempre que minha lista não estiver vazia, defino outro estado
3) Quando minha lista nunca é tocada, desejo dar outra aula (é aqui que a página é iniciada):
3) Eu uso este modelo adicional na minha classe ng:
fonte
Use-o desta maneira:
fonte
Você pode tentar este método:
Você pode obter detalhes completos a partir daqui .
fonte