First we need to adjust your collections, because the object statement is not correct:
[ cod_anv: '1', fabricante: '1' ] // colchetes ([]) definem uma coleção de objetos,
// porém objetos precisam ser declarados com chaves ({})
Second, we create a map of the collection fabricantes
indexed by the property cod_fab
.
Finally, we instruct Angular to display the manufacturer’s name according to a searched index.
The code goes below:
function SampleController($scope) {
$scope.aeronaves = [ {cod_anv: '1', fabricante: '1', modelo:'teste'},
{cod_anv: '2', fabricante: '2', modelo:'teste 2'},
{cod_anv: '3', fabricante: '1', modelo:'teste 3'},];
$scope.fabricantes = [ {cod_fab: '1', nome: 'Embraer'},
{cod_fab: '2', nome: 'Boeing'} ];
$scope.fabricantesMap = $scope.fabricantes.reduce(function (map, node) {
map[node.cod_fab] = node;
return map;
}, {});
}
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body>
<div ng-controller="SampleController">
<div ng-repeat='i in aeronaves'>
{{i.cod_anv}} - {{i.modelo}} - {{fabricantesMap[i.fabricante].nome}}
</div>
</div>
</body>
</html>
Exactly that! Thank you for the lesson!
– Dannicléo Teles