Diferencias

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

Enlace a la vista de comparación

unidades:04_masdirectivas:10_ngclass [2014/08/01 00:11]
admin
unidades:04_masdirectivas:10_ngclass [2014/08/30 09:52] (actual)
admin
Línea 4: Línea 4:
 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. 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 ​suponiendo que existen ​los siguientes ​estilos:+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]> <sxh js;​highlight:​ [4]>
Línea 12: Línea 25:
   $scope.clasesCss={   $scope.clasesCss={
     rojo:true,     rojo:true,
-    subrayado:false+    subrayado:true
-    negrita:true+    negrita:false
   }   }
 }); });
 </​sxh>​ </​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.1406844681.txt.gz · Última modificación: 2014/08/01 00:11 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