Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:04_masdirectivas:10_ngclass [2014/07/31 22:39]
admin creado
unidades:04_masdirectivas:10_ngclass [2014/08/30 09:52] (actual)
admin
Línea 1: Línea 1:
 ====== 4.10 ng-class ====== ====== 4.10 ng-class ======
 +La directiva ''​ng-class''​ permite de una forma sencilla añadir y quitar clases CSS a un tag. 
  
 +La forma de hacerlo es mediante un objeto JavaScript que esté en el ''​$scope''​. En dicho objeto , el nombre de cada propiedad será el nombre de una clase CSS. Si el valor de dicha propiedad es ''​true''​ se añadirá la clase CSS al tag y si está a ''​false''​ se quitará su clase CSS del tag.
 +
 +Veamos un ejemplo:
 +
 +Los estilos css serán los siguientes:
 +<sxh css>
 +    .rojo {
 +      color:red;
 +    }
 +    .subrayado {
 +      text-decoration:​ line-through;​
 +    }
 +    .negrita {
 +      font-weight:​ bold;
 +    }
 +</​sxh>​
 +
 +<sxh js;​highlight:​ [4]>
 +var app = angular.module("​app",​ []);
 +   
 +app.controller("​PruebaController",​ function($scope) {
 +  $scope.clasesCss={
 +    rojo:true,
 +    subrayado:​true,​
 +    negrita:​false
 +  }
 +});
 +</​sxh>​
 +
 +  * Línea 4: Se declara la propiedad "​clasesCss"​ que contiene 3 propiedades,​ una por cada uno de las 3 clases CSS. Sólo están a ''​true''​ las propiedades ''​rojo''​ y ''​subrayado''​ por lo que sólo se aplicarán estas 2 clases CSS al elemento.
 +
 +<sxh html>
 +<div ng-class="​clasesCss">​Este es un texto con clases dinámicas</​div>​
 +</​sxh>​
 +
 +Ahora al aplicar la directiva ''​ng-class''​ al tag ''<​div>''​ se aplicarán las clases CSS "​rojo"​ y "​subrayado"​.
 +
 +Pero ahora todo ésto tiene una ventaja. Al ser valores del $scope los podemos modificar desde AngularJS y automáticamente se modificarán las clases CSS.
 +
 +Ahora podemos añadir los siguientes tags <​input>​ para modificar desde la propia página las clases CSS que se aplican:
 +
 +<sxh html>
 +  <input ng-model="​clasesCss.rojo"​ type="​checkbox">​Aplicar estilo Rojo
 +  <br>
 +  <input ng-model="​clasesCss.subrayado" ​ type="​checkbox">​Aplicar estilo Subrayado
 +  <br>
 +  <input ng-model="​clasesCss.negrita" ​ type="​checkbox">​Aplicar estilo Negrita  ​
 +  <br>
 +</​sxh>​
 +
 +Gracias a estos "​checkbox"​ podemos fácilmente modificar qué estilos se aplican a un tag HTML.
 +
 +<​note>​
 +AngularJS soporta también que en vez de ser la propiedad del ''​$scope''​ un objeto con las clases sea también un array con el nombre de las clases CSS o un único String con los nombres de las clases separadas por espacios.
 +
 +Sin embargo, estas 2 formas las veo menos útiles que la que he explicado, pero por supuesto pueden ser mas cómodas de usar según la ocasión.
 +</​note>​
  
 ===== Ejemplo ===== ===== Ejemplo =====
 +El código completo del ejemplo es:
  
-{{url>​http://embed.plnkr.co/pe2RVo}}+<sxh css;title:style.css> 
 +.rojo { 
 +  color: red; 
 +} 
 +.subrayado { 
 +  text-decoration:​ line-through;​ 
 +} 
 +.negrita { 
 +  font-weight:​ bold; 
 +
 +</​sxh>​
  
 +<sxh html;​title:​index.html;​highlight:​ [17]>
 +<​!DOCTYPE html>
 +<html ng-app="​app">​
 +<​head>​
 +  <link rel="​stylesheet"​ href="​style.css">​
 +  <script src="//​ajax.googleapis.com/​ajax/​libs/​angularjs/​1.2.19/​angular.js"></​script>​
 +  <script src="​script.js"></​script>​
 +</​head>​
 +<body ng-controller="​PruebaController">​
  
 +  <input ng-model="​clasesCss.rojo"​ type="​checkbox">​Aplicar estilo Rojo
 +  <br>
 +  <input ng-model="​clasesCss.subrayado" ​ type="​checkbox">​Aplicar estilo Subrayado
 +  <br>
 +  <input ng-model="​clasesCss.negrita" ​ type="​checkbox">​Aplicar estilo Negrita  ​
 +  <br>
 +  <br>
 +  <div ng-class="​clasesCss">​Este es un texto con clases dinámicas</​div>​
 +
 +</​body>​
 +</​html>​
 +</​sxh>​
 +
 +  * Linea 17: Con la directiva ''​ng-class''​ se indica el nombre de la propiedad que contiene las clases a mostrar.
 +
 +<sxh js;​title:​script.js;​highlight:​ [4,​5,​6,​7,​8]>​
 +var app = angular.module("​app",​ []);
 +   
 +app.controller("​PruebaController",​ function($scope) {
 +  $scope.clasesCss={
 +    rojo:true,
 +    subrayado:​true,​
 +    negrita:​false
 +  }
 +});
 +</​sxh>​
 +
 +  * Linea 4: El objeto con las clases que pueden o no añadirse al tag HTML
 +
 +{{url>​http://​embed.plnkr.co/​pe2RVo}}
 ===== Referencias ===== ===== Referencias =====
   * [[https://​docs.angularjs.org/​api/​ng/​directive/​ngClass|ng-class]]   * [[https://​docs.angularjs.org/​api/​ng/​directive/​ngClass|ng-class]]
unidades/04_masdirectivas/10_ngclass.1406839180.txt.gz · Última modificación: 2014/07/31 22:39 por admin
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0