Foro

Acceder a datos

0
Hola que tal tengo un json con un arreglo al que quiero acceder
  • {
    • id: "1",
    • nombre: "4 SER SOCIAL Y SOCIEDAD",
    • cve: "M-04",
    • area: null,
    • sem: null,
    • modular: "1",
    • temas: [
      • {
        • id: "1",
        • materiaid: "1",
        • unidad: "1",
        • nombre: "UNIDAD 1 EL SER SOCIAL Y LA DIVERSIDAD CULTURAL"
        },
      • {
        • id: "2",
        • materiaid: "1",
        • unidad: "2",
        • nombre: "UNIDAD 2 LA SOCIEDAD, SUS INSTITUCIONES Y ESTRUCTURAS"
        },
      • {
        • id: "3",
        • materiaid: "1",
        • unidad: "3",
        • nombre: "UNIDAD 3 CIENCIA, TECNOLOGÍA Y TECNOCIENCIA EN LA SOCIEDAD"
        }
      ]
    },
  • {
    • id: "2",
    • nombre: "1 DE LA INFORMACIÓN AL CONOCIMIENTO",
    • cve: "M-01",
    • area: "",
    • sem: "",
    • modular: "1",
    • temas: [ ]
    },
  • {
    • id: "3",
    • nombre: "2 EL LENGUAJE CON LA RELACIÓN DEL HOMBRE CON EL MUNDO",
    • cve: "M-02",
    • area: null,
    • sem: null,
    • modular: "1",
    • temas: [ ]
    },

Los datos a los que quiero acceder son los temas

tengo esto

$http.get(ruta).success(function(data){

//donde paso materias

$scope.materias = data;

//pero tambien quiero un

$scope.temas = ????

//donde quiero acceder a las materias de cada tema

})

 Gracias de antemano

0
Hola Javi

El detalle es que los temas pertenecen a una materia, unicamente los puedes acceder por cada materia, algo así:

$scope.materias[0].temas

En caso de querer desplegarlos podrías iterarlos en un template, primero iteras las materias, luego iteras los temas.

Saludos 

0
Pero si quiero acceder a todos los temas por materia???
Se que para materia solo creo el scope de materias

$scope.materias = data

 pero ahora por cada materia quiero acceder a sus temas como podría acceder

0
Trate esto 

    appfactory.getMaterias()
      .success(function(data) {
        $scope.materias = data; 
        for (var i = 0; i < $scope.materias.length; i++) {
          $scope.temas = $scope.materias[i].temas;
        };
      }) 

 pero me regresa fuera del for un []

lo que sucede es que quiero meter en un select todas las materias

y según la selección de materias que filtre sus temas en otro select

gracia por la atención y tus rápidas respuestas

0
Crys ya puede resolverlo 
<select class="form-control" ng-model="materia" ng-options="materia as materia.nombre for materia in materias" ng-change="getTemas(materia)">						<option value="">Selecciona una opción</option>
</select>
{{materia.nombre}}
//-----------------------------
<select class="form-control" ng-model="tema" ng-options="tema as tema.nombre for tema in temas">				<option value="">Selecciona un tema</option>
</select>
{{tema.nombre}}


$scope.getTemas = function(materia){      
      $scope.temas = materia.temas
      console.log($scope.temas);
    }

 ya con eso si escojo una materia me muestra los temas correspondientes, muchas gracias.

0
Tengo otra pregunta referenciado a lo mismo 
arriba en mi json tengo un atributo que se llama modular, que es 1 o 0 segun el plan de estudios.
en mi view tengo un select 

<select class="form-control" ng-model="plan" ng-required="true">
	<option value="">Selecciona una opción</option>
	<option value="0">Por Asignatura</option>
	<option value="1">Modular</option>
</select>

<select class="form-control" ng-model="materia" ng-required="true">
	<option value="">Selecciona una asignatura...</option>
</select>

 y quisiera que si el valor del select es 1 osea que es modular me filtre las materias que tienen modular: "1",

ya estuve buscando varias opciones pero la verdad no he podido resolverlo, gracias otra vez

Crysfel Villa: Hola Javier, solo tienes que usar un filtro en el ng-options, te dejo un ejemplo: http://jsbin.com/yafupi/1/ y aquí el tutorial al respecto: https://quizzpot.com/courses/introduccion-a-angular-js/articles/uso-de-filtros Saludos 22/12/2014
Javier Ruiz : muchas gracias por tu respuesta Crys saludos 22/12/2014

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.