Estoy tratando de trabajar cómo agregar una clase con ngClick. He cargado mi código en plunker Haga clic aquí . Mirando la documentación angular, no puedo averiguar la forma exacta en que debería hacerse. A continuación se muestra un fragmento de mi código. ¿Alguien puede guiarme en la dirección correcta?
<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
Nuevo niño del vecindario
fuente
fuente
Respuestas:
Solo necesita vincular una variable a la directiva "ng-class" y cambiarla desde el controlador. A continuación, se muestra un ejemplo de cómo hacer esto:
Aquí está el ejemplo de trabajo en jsFiddle
fuente
class
es una palabra reservada, useclassName
en su lugar, el compilador YUI fallará al minimizar esto.Quiero agregar o eliminar la
active
clase " " en mi código de forma dinámicang-click
, aquí lo que he hecho.fuente
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.
Hay una forma simple y limpia de hacer esto con solo directivas.
fuente
también puede hacer eso en una directiva, si desea eliminar la clase anterior y agregar una nueva clase
y en tu plantilla:
fuente
Lo tiene exactamente bien, todo lo que tiene que hacer es establecer selectedIndex en su ng-click.
Así es como implementé un conjunto de botones que cambian la vista ng y resaltan el botón de la vista actualmente seleccionada.
y esto en mi controlador.
fuente
fuente
Usé la sugerencia de Zack Argyle anterior para obtener esto, que encuentro muy elegante:
CSS:
HTML:
fuente
Si prefiere la separación de preocupaciones de modo que la lógica para agregar y eliminar clases ocurra en el controlador, puede hacer esto
controlador
HTML
CSS
fuente
No puedo creer lo complejo que todo el mundo está haciendo esto. En realidad, esto es muy simple. Simplemente pegue esto en su html (no se requieren cambios de directive./controller - "bg-info" es una clase de arranque):
fuente
para formas reactivas -
Archivo HTML
Archivo TS
fuente