passando 2 valores de índice $ dentro da repetição ng aninhada

Então eu tenho um ng-repeat nested dentro de outro ng-repeat para construir um menu nav. Em cada

  • no loop ng-repeat interno, defino um ng-click que chama o controlador relevante para esse item de menu passando o $ index para que o aplicativo saiba qual delas precisamos. No entanto, eu preciso passar também o $ index do ng-repeat externo para que o aplicativo saiba em qual seção estamos e também qual tutorial.

     
    • {{section.name}}
      • {{tutorial.name}}

    aqui está um Plunker http://plnkr.co/edit/bJUhI9oGEQIql9tahIJN?p=preview

    Cada ng-repeat cria um escopo filho com os dados passados ​​e também adiciona uma variável $index adicional nesse escopo.

    Então, o que você precisa fazer é alcançar o escopo pai e usar esse $index .

    Consulte http://plnkr.co/edit/FvVhirpoOF8TYnIVygE6?p=preview

     
  • {{tutorial.name}}
  • Uma solução mais elegante que o $parent.$index está usando o ng-init :

     
    • {{section.name}}
    • {{tutorial.name}}

    Plunker: http://plnkr.co/edit/knwGEnOsAWLhLieKVItS?p=info

    Que tal usar esta syntax (dê uma olhada nesta plunker ). Acabei de descobrir isso e é muito legal.

     ng-repeat="(key,value) in data" 

    Exemplo:

     
    {{indexX}} - {{indexY}} - {{value}}

    Com esta syntax você pode dar seu próprio nome para $index e diferenciar os dois índices.

    Apenas para ajudar alguém que chega aqui … Você não deve usar $ parent. $ Index como não é realmente seguro. Se você adicionar um ng-if dentro do loop, você obterá o $ index messed!

    Caminho certo

      
    [{{rowIndex}} - {{columnIndex}}] [{{rowIndex}} - {{columnIndex}}]

    Verificar: plnkr.co/52oIhLfeXXI9ZAynTuAJ

    Quando você está lidando com objects, você quer ignorar o id simples tanto quanto conveniente.

    Se você mudar a linha de clique para isso, acho que você estará bem no seu caminho:

     
  • Além disso, acho que você pode precisar mudar

     class="tutorial_title {{tutorial.active}}" 

    para algo como

     ng-class="tutorial_title {{tutorial.active}}" 

    Veja http://docs.angularjs.org/misc/faq e procure por ng-class.

    Eu estou tentando usar a solução que gonzalon propôs. Mas isso não funciona no meu caso. Eu quero ter uma dica de ferramenta com mais informações quando o mouse está sobre a célula da tabela que eu crio fazendo loop para as linhas e células.

    Os valores mudam quando movo meu mouse sobre as células da tabela, mas os valores para linha e coluna são sempre ambos o número da coluna.

     
    {{zone}}
    {{row[0]}} {{cell[1]}}