O que há de errado com meu código angular? Estou obtendo:
Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass ...
HTML
<ol class="breadcrumb">
<li *ngClass="{active: step==='step1'}" (click)="step='step1; '">Step1</li>
<li *ngClass="{active: step==='step2'}" (click)="step='step2'">Step2</li>
<li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li>
</ol>
Respostas:
A versão angular 2, ..., 9 fornece várias maneiras de adicionar classes condicionalmente:
digite um
tipo dois
e opção múltipla:
tipo três
tipo quatro
fonte
[ngClass]="js expression returning html class string"
modo que são os mesmos neste sentido[ngClass]=...
em vez de*ngClass
.*
é apenas para a sintaxe abreviada de diretivas estruturais em que você pode, por exemplo, usarem vez da versão equivalente mais longa
Consulte também https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html
Veja também https://angular.io/docs/ts/latest/guide/template-syntax.html
fonte
*
apenas permite uma sinax simplificada em vez de uma forma canônica.Outra solução estaria usando
[class.active]
.Exemplo:
fonte
Essa é a estrutura normal para
ngClass
é:Portanto, no seu caso, use-o assim ...
fonte
com os exemplos a seguir, você pode usar 'IF ELSE'
fonte
Você pode usar o ngClass para aplicar o nome da classe condicionalmente e não no Angular
Por exemplo
Condicional
Condição múltipla
Expressão de método
Este método estará dentro do seu componente
fonte
Você deve usar algo (em
[ngClass]
vez de*ngClass
) assim:fonte
No
Angular 7.X
As classes CSS são atualizadas da seguinte forma, dependendo do tipo de avaliação da expressão:
string - as classes CSS listadas na string (delimitadas por espaço) são adicionadas
Matriz - as classes CSS declaradas como elementos da matriz são adicionadas
As chaves de objeto são classes CSS que são adicionadas quando a expressão fornecida no valor é avaliada como um valor verdadeiro, caso contrário, elas são removidas.
fonte
para estender MostafaMashayekhi sua resposta para a opção dois> você também pode encadear várias opções com um ','
Também * ngIf pode ser usado em algumas dessas situações geralmente combinadas com um * ngFor
fonte
Enquanto criava um formulário reativo, tive que atribuir 2 tipos de classe no botão. Foi assim que eu fiz:
Quando o formulário é válido, o botão possui as classes btn e btn (do bootstrap), caso contrário, apenas a classe btn.
fonte
Além disso, você pode adicionar com a função de método:
Em HTML
Em component.ts
fonte
Deixe, YourCondition é sua condição ou uma propriedade booleana, faça assim
fonte
ngClass
sintaxe:Você pode usar assim:
fonte
Isto é o que funcionou para mim:
fonte
Você pode usar [ngClass] ou [class.classname], ambos funcionarão da mesma maneira.
[class.my-class]="step==='step1'"
OU
[ngClass]="{'my-class': step=='step1'}"
Ambos funcionarão da mesma maneira!
fonte
Não é relevante com a
[ngClass]
diretiva, mas eu também estava recebendo o mesmo erro quee eu pensei que era o erro na minha
[ngClass]
condição, mas a propriedade que eu estava tentando acessar na condição de[ngClass]
não foi inicializada.Como se eu tivesse isso no meu arquivo datilografado
e no meu
[ngClass]
eu estava usandoe eu estava recebendo o erro
e a solução foi consertar minha propriedade
Espero que ajude alguém que está tentando corresponder a uma condição de uma propriedade em
[ngClass]
fonte
O código é um bom exemplo de ngClass se houver outra condição.
fonte
Tente assim ..
Defina sua turma com ''
fonte