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

[SOLUCIONADO] Uso de variables en un template en angularjs

Estas en el tema de Uso de variables en un template en angularjs en el foro de Frameworks JS en Foros del Web. Hola Estoy utilizando angularjs para consumir un servicio REST, el problema es que necesito crear un menú dinamicamente con un evento click en cada item ...
  #1 (permalink)  
Antiguo 13/02/2014, 03:40
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Uso de variables en un template en angularjs

Hola

Estoy utilizando angularjs para consumir un servicio REST, el problema es que necesito crear un menú dinamicamente con un evento click en cada item en el que necesito pasar un indice a esa llamada de menú para cargar uno u otro dato.

Necesito que la varible "i" que le paso a la función mostrar se incremente en cada vuelta del ng-repeat.

Mi código es el siguiente:
Vista:
Código HTML:
Ver original
  1. <div id="menu" ng-controller="MenuController" ng-model="seccion">
  2.     <ul>
  3.         <li ng-repeat = "item in menu" ng-click = "mostrar(i+1)" ng-model="i">{{item.nombre}}</li>
  4.     </ul>
  5. </div>

Controlador:
Código Javascript:
Ver original
  1. //datos inicio es una fabrica generada previamente
  2. function MenuController($scope, datosInicio){
  3.   $scope.menu=datosInicio.lista;
  4.   $scope.i = 0;
  5.   $scope.add = function(i) {
  6.     $scope.seccion = datosInicio.lista[i];
  7.   }
  8. }

Gracias
  #2 (permalink)  
Antiguo 13/02/2014, 06:30
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Uso de variables en un template en angularjs

Ya he encontrado una solución:

Utilizando $index.

Código HTML:
Ver original
  1. <ul>
  2.         <li ng-repeat = "item in menu" ng-click = "add($index)">{{item.nombre}}</li>

y en el controlador.

Código Javascript:
Ver original
  1. function MenuController($scope, datosInicio){
  2.   $scope.menu=datosInicio.lista;
  3.   $scope.i = 0;
  4.   $scope.add = function($index) {
  5.     $scope.seccion = datosInicio.lista[$index];
  6.   }
  7. }

Es importante que el $index vaya sin {{}} por que si no no funciona

Código HTML:
Ver original
  1. <li ng-repeat = "item in menu" ng-click = "add({{$index}})"> //No funciona
  2. <li ng-repeat = "item in menu" ng-click = "add($index)"> //Funciona

Etiquetas: vistas
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 08:36.