Estou tentando trabalhar como adicionar uma classe com ngClick. Eu carreguei meu código no plunker Clique aqui . Olhando para a documentação angular, não consigo descobrir a maneira exata como isso deve ser feito. Abaixo está um trecho do meu código. Alguém pode me guiar na direção certa
<div ng-show="isVisible" ng-class="{'selected': $index==selectedIndex}" class="block"></div>
Controlador
var app = angular.module("MyApp", []);
app.controller("subNavController", function ($scope){
$scope.toggle = function (){
$scope.isVisible = ! $scope.isVisible;
};
$scope.isVisible = false;
});
javascript
angularjs
angularjs-ng-click
ng-class
Novo garoto no quarteirão
fonte
fonte
Respostas:
Você só precisa vincular uma variável à diretiva "ng-class" e alterá-la no controlador. Aqui está um exemplo de como fazer isso:
Aqui está o exemplo trabalhando em jsFiddle
fonte
class
é uma palavra reservada, use emclassName
vez disso, o compilador YUI não conseguirá reduzir isso.Desejo adicionar ou remover a
active
classe " " no meu código dinamicamenteng-click
, aqui está o que eu fiz.fonte
The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.
Existe uma maneira simples e limpa de fazer isso apenas com diretivas.
fonte
você também pode fazer isso em uma diretiva, se quiser remover a classe anterior e adicionar uma nova classe
e em seu modelo:
fonte
Você acertou exatamente, tudo o que você precisa fazer é definir o selectedIndex no seu ng-click.
Aqui está como eu implementei um conjunto de botões que mudam a visualização do ng e destaca o botão da visualização atualmente selecionada.
e isso no meu controlador.
fonte
fonte
Usei a sugestão de Zack Argyle acima para conseguir isso, que considero muito elegante:
CSS:
HTML:
fonte
Se você preferir a separação de interesses de forma que a lógica para adicionar e remover classes aconteça no controlador, você pode fazer isso
controlador
HTML
CSS
fonte
Não posso acreditar como todo mundo está tornando isso complexo. Na verdade, isso é muito simples. Apenas cole isso em seu html (não são necessárias alterações de diretiva./controlador - "bg-info" é uma classe de bootstrap):
fonte
para formas reativas -
Arquivo HTML
Arquivo TS
fonte