Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] Problema con auto incrementación Angular JS

Estas en el tema de Problema con auto incrementación Angular JS en el foro de Frameworks JS en Foros del Web. Saludos, qué tal? tengo un pequeño problema con un conteo incrementativo en Angular JS. Tengo un <table ng-repeat> que se repite mostrando un tbody y ...
  #1 (permalink)  
Antiguo 17/11/2014, 22:09
Avatar de a1989  
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Problema con auto incrementación Angular JS

Saludos, qué tal? tengo un pequeño problema con un conteo incrementativo en Angular JS.

Tengo un <table ng-repeat> que se repite mostrando un tbody y dentro de éste tengo un <tr ng-repeat> que se repite alimentando la tabla con varios trs mostrando información.

Hasta aquí todo bien, el problema aparece cuando quiero imprimir un conteo, por cada td quiero poner un número incrementativo, es decir, el primer td que tenga como ID 1, el segundo el 2, etc...

No consigo esto, ya que cuando el tr se repite el conteo se detiene hasta antes de empezar la siguiente repetición del próximo tr, entonces el conteo queda del 1 hasta el 3 suponiendo que cada tr tiene 3 td en su interior, bueno, pego el código aquí y cuelgo el codigo para que lo puedan observen en [URL="http://embed.plnkr.co/5h0Rjk9RhMswYqayVRxN/preview"]plunker[/URL].

Código Javascript:
Ver original
  1. function groupColors($scope){
  2.     $scope.colors = [
  3.         {name : "rojos", color : [
  4.             ["IndianRed", "CD5C5C"],
  5.             ["LightCoral", "F08080"],
  6.             ["Salmon", "FA8072"]
  7.         ]},
  8.         {name : "rosados", color : [
  9.             ["Pink", "FFC0CB"],
  10.             ["LightPink", "FFB6C1"],
  11.             ["HotPink", "FF69B4"]
  12.         ]},
  13.         {name : "narajnas", color : [
  14.             ["Coral", "FF7F50"],
  15.             ["Tomato", "FF6347"],
  16.             ["OrangeRed", "FF4500"]
  17.         ]}
  18.     ];
  19. }
Código HTML:
Ver original
  1. <body ng-app>
  2.     <div class="container">
  3.         <div class="table-responsive" ng-controller="groupColors">
  4.             <table class="table table-condensed table-bordered" ng-repeat="colors in colors">
  5.                 <thead>
  6.                     <tr>
  7.                         <th colspan="3"><h3><strong>Colores {{colors.name}}</strong></h3></th>
  8.                     </tr>
  9.                     <tr>
  10.                         <th>Nombre</th>
  11.                         <th>Código hexadecimal</th>
  12.                         <th>ID</th>
  13.                     </tr>
  14.                 </thead>
  15.                 <tbody>
  16.                     <tr ng-repeat="color in colors.color" style="background-color:{{color[0]}}" ng-init="count = $index+1">
  17.                         <td>{{color[0]}}</td>
  18.                         <td>{{color[1]}}</td>
  19.                         <td>{{count}}</td>
  20.                     </tr>
  21.                 </tbody>
  22.             </table>
  23.         </div>
  24.     </div>
  25. </body>

Quisiera saber si puedo hacer ese conteo del 1 hasta donde llegue sin reiniciarse, spero que sea una tonteria, aunque me quede trabado por una tonteria, gracias de antemano! saludos!
  #2 (permalink)  
Antiguo 18/11/2014, 06:53
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 18 años, 5 meses
Puntos: 32
Respuesta: Problema con auto incrementación Angular JS

Hola!

Deberías empezar a tomar buenas prácticas de programación en AngularJS y definir tu módulo inicial y tu controlador así:
Código Javascript:
Ver original
  1. angular.module('app', [])
  2.   .controller('groupColors', function($scope){
  3.       $scope.colors = [
  4.           {name : "rojos", color : [
  5.               ["IndianRed", "CD5C5C"],
  6.               ["LightCoral", "F08080"],
  7.               ["Salmon", "FA8072"]
  8.           ]},
  9.           {name : "rosados", color : [
  10.             ["Pink", "FFC0CB"],
  11.             ["LightPink", "FFB6C1"],
  12.             ["HotPink", "FF69B4"]
  13.           ]},
  14.           {name : "narajnas", color : [
  15.             ["Coral", "FF7F50"],
  16.             ["Tomato", "FF6347"],
  17.             ["OrangeRed", "FF4500"]
  18.           ]}
  19.       ];
  20.   });
Ahora la directiva ngApp en el HTML debería quedar así:
Código HTML:
Ver original
  1. <body ng-app="app">

Luego, una cosa que te ayudará es saber que puedes saber el $index del ng-repeat de fuera con ayuda de $parent.$index.

Con lo cual ya solo tienes que encontrar la fórmula que permita que dados los $index de fuera y de dentro:
Código Javascript:
Ver original
  1. 0, 0 -> te dé 1
  2. 0, 1 -> te de 2
  3. 0, 2 -> te dé 3
  4. 1, 0 -> te dé 4
  5. 1, 1 -> te dé 5
  6. etc...

Te dejo aquí el código modificado

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils
  #3 (permalink)  
Antiguo 18/11/2014, 08:00
Avatar de a1989  
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con auto incrementación Angular JS

Estupendo! Muchas gracias por la aclaración, parece ser que en vez de ser una tontería el tonto soy yo xD
Probaré y regreso al rato a marcar el post como solucionado gracias :3
  #4 (permalink)  
Antiguo 18/11/2014, 10:19
Avatar de a1989  
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con auto incrementación Angular JS

en verdad no se como hacerlo, soy todo un novato e_e
la cantidad de tds no solo serán de a 3, serán diferentes, en un grupo de color habrán más colores que en otros, etc.. ya me enrede todo -___-

Última edición por a1989; 18/11/2014 a las 10:32 Razón: añadí un punto a mi repentina duda
  #5 (permalink)  
Antiguo 18/11/2014, 17:02
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 18 años, 5 meses
Puntos: 32
Respuesta: Problema con auto incrementación Angular JS

Seguramente Angular proveerá alguna manera. A mi sólo se me ocurre esta chapuza:

http://plnkr.co/edit/tlkxPN?p=preview
__________________
github.com/xgbuils | npm/xgbuils
  #6 (permalink)  
Antiguo 18/11/2014, 23:56
Avatar de a1989  
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con auto incrementación Angular JS

Cita:
Iniciado por Pantaláimon Ver Mensaje
Seguramente Angular proveerá alguna manera. A mi sólo se me ocurre esta chapuza:

[url]http://plnkr.co/edit/tlkxPN?p=preview[/url]
Increíble! yo duré toda la noche de ayer y parte de la de hoy tratando de conseguir esa fórmula y nada de nada, pero mirando tu fórmula no creo que se me habría ocurrido algo similar xD

muchísimas gracias por tu ayuda, ya veré la cara de los chicos del trabajo al mostrarle como un Pantaláimon consiguió la fórmula que ellos no pudieron ayudarme a crear xD

Etiquetas: javascript, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.