¿Cómo consultar un array dentro de un array con AngularJS (Angular 1)?

publicado por: Anonymous

Tengo un arreglo que deseo consultar mediante Angular con la directiva ng-repeat pero no encuentro la manera de acceder a los elementos dentro del arreglo interno.

Por ejemplo:

$scope.preguntas=[{
    pregunta:"Pregunta?",
    respuestas:["Respuesta1","Respuesta2"]
}];

Esto lo quiero consultar de la siguiente manera:

<ul>
  <li ng-repeat="preg in preguntas">
    Pregunta:{{ preg.pregunta}}
  </li>
</ul>

Eso tengo para la pregunta pero no encuentro cómo acceder a las respuestas, ya intenté algo como preg.respuestas, preg in preguntas.respuestas.

solución

La respuesta ya la tienes. ¿Cómo iteras un arreglo con directivas AngularJS? Pues con ng-repeat. Solo tienes que iterar preg.respuestas y mostrarlas en el HTML.

_x000D_

_x000D_

angular_x000D_
  .module('myapp', [])_x000D_
  .controller('questionController', ['$scope', function($scope) {_x000D_
    $scope.preguntas=[{_x000D_
        pregunta:"¿Qué etiquetas son más populares en SOes?",_x000D_
        respuestas:["Java", "PHP", "JavaScript", "Android"]_x000D_
    }];_x000D_
  }]);

_x000D_

html {_x000D_
  font-family: sans-serif, 'ubuntu', 'segoe ui';_x000D_
}_x000D_
_x000D_
h3 {_x000D_
  color: #333;_x000D_
  font-weight: 400;_x000D_
}_x000D_
_x000D_
li {_x000D_
  color: #333;_x000D_
  font-size: 15px;_x000D_
}_x000D_
_x000D_
li > ul > h4 {_x000D_
  margin-left: -40px;_x000D_
}

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>_x000D_
_x000D_
<section ng-app="myapp">_x000D_
  <h3>Preguntas</h3>_x000D_
  <ul ng-controller="questionController as AC">_x000D_
    <li ng-repeat="preg in preguntas">_x000D_
      {{ preg.pregunta}}_x000D_
      <ul>_x000D_
        <h4>Respuestas</h4>_x000D_
        <li ng-repeat="resp in preg.respuestas">_x000D_
          {{ resp }}_x000D_
        </li>_x000D_
      </ul>_x000D_
    </li>_x000D_
  </ul>_x000D_
</section>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *