Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Acessar valor de um propriedade sem usar o ng-repeat.

Tenho o seguinte array abaixo (ele vem de um serviço já pronto no backend):

[{
    "id": 2,
    "name": "Antonio   ",
    "email": "antonio@email.com",
    "enabled": true,
    "lastAccess": "\/Date(1469453305500)\/",
    "teams": [{
        "id": 11,
        "name": "Comercial",
        "selected": false
    }, {
        "id": 15,
        "name": "Consultoria",
        "selected": false
    }, {
        "id": 10,
        "name": "Design",
        "selected": true
    }, {
        "id": 8,
        "name": "Dev",
        "selected": false
    }, {
        "id": 17,
        "name": "Digital",
        "selected": true
    }, {
        "id": 12,
        "name": "Diretoria",
        "selected": false
    }, {
        "id": 13,
        "name": "Finanças",
        "selected": false
    }, {
        "id": 14,
        "name": "Marketing MKT",
        "selected": false
    }]
}, {
    "id": 11,
    "name": "Email     ",
    "email": "email@email.com",
    "enabled": true,
    "lastAccess": "\/Date(1469453305500)\/",
    "teams": [{
        "id": 11,
        "name": "Comercial",
        "selected": true
    }, {
        "id": 15,
        "name": "Consultoria",
        "selected": true
    }, {
        "id": 10,
        "name": "Design",
        "selected": false
    }, {
        "id": 8,
        "name": "Dev",
        "selected": false
    }, {
        "id": 17,
        "name": "Digital",
        "selected": false
    }, {
        "id": 12,
        "name": "Diretoria",
        "selected": false
    }, {
        "id": 13,
        "name": "Finanças",
        "selected": false
    }, {
        "id": 14,
        "name": "Marketing MKT",
        "selected": false
    }]
}, {
    "id": 6,
    "name": "João      ",
    "email": "joao@email.com",
    "enabled": false,
    "lastAccess": "\/Date(1469453305500)\/",
    "teams": [{
        "id": 11,
        "name": "Comercial",
        "selected": false
    }, {
        "id": 15,
        "name": "Consultoria",
        "selected": false
    }, {
        "id": 10,
        "name": "Design",
        "selected": false
    }, {
        "id": 8,
        "name": "Dev",
        "selected": false
    }, {
        "id": 17,
        "name": "Digital",
        "selected": false
    }, {
        "id": 12,
        "name": "Diretoria",
        "selected": false
    }, {
        "id": 13,
        "name": "Finanças",
        "selected": true
    }, {
        "id": 14,
        "name": "Marketing MKT",
        "selected": true
    }]
}, {
    "id": 7,
    "name": "Antonio 2 ",
    "email": "antonio2@email.com",
    "enabled": false,
    "lastAccess": "\/Date(1469453305500)\/",
    "teams": [{
        "id": 11,
        "name": "Comercial",
        "selected": false
    }, {
        "id": 15,
        "name": "Consultoria",
        "selected": false
    }, {
        "id": 10,
        "name": "Design",
        "selected": true
    }, {
        "id": 8,
        "name": "Dev",
        "selected": false
    }, {
        "id": 17,
        "name": "Digital",
        "selected": true
    }, {
        "id": 12,
        "name": "Diretoria",
        "selected": false
    }, {
        "id": 13,
        "name": "Finanças",
        "selected": false
    }, {
        "id": 14,
        "name": "Marketing MKT",
        "selected": false
    }]
}]

Como faço pra acessar o valor da propriedade name dentro de teams ?

No controller já tenho um vm.users que traz essa lista de um determinado serviço, mas se tento acessar diretamente vm.users.teams ele não vai trazer porque tá dentro de outro array, então usei um ng-repeat dentro de outro ng-repeat e acabou dando certo.

A questão é que fora do ng-repeat ele não trás o valor.

No meu caso preciso apenas dos valores true dentro do teams.

Não sei se consegui deixar claro, mas é esse o cenário.

3 respostas

Fala aí, Israel! Beleza? =)

Você tentou fazer algo como vm.users[0].teams, ou vm.users[1].teams? =)

Fábio

Sim! Mas o lance é que preciso apenas dos valores true, e isso é dinâmico... tem como passar um filtro no array?

solução!

Israel,

Eu não sou expert em JavaScript... Eu achei que o Array.prototype tivesse uma função chamada filter, e tem mesmo! No site da MDN você pode conferir como ela funciona... Talvez isso lhe ajude... =)

Fábio

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software