orderBy
HTML
Quando a distancia do primeiro endereço da empresa 2 for menor que o primeiro endereço da empresa 1, a order tem que ser trocada. <br>
Obs. Vai dando RUN para ver que nada muda, a distancia é um random, somente para o exemplo.
<br>
<div ng-app ng-controller="LoginController">
<div ng-repeat="parceiro in parceiros | orderBy:enderecos[0]['distancia']">
<div style="border: 1px solid black;">
{{parceiro.nome}}
<div ng-repeat="endereco in parceiro.enderecos">
-- Rua: {{endereco.rua}} - Numero: {{endereco.numero}} - distância: {{endereco.distancia = distancia(lat, long, 0, 0)}}
</div>
</div>
</div>
<br>
<br>
<br>
<br>
<p>Aqui é só para mostrar que o campo foi criado dentro do objeto.</p>
{{parceiros}}
</div>
JavaScript
function LoginController($scope) {
$scope.parceiros = [
{
id: 1,
nome: 'Empresa 1',
enderecos: [
{
rua: 'dos bobos',
numero: '0',
lat: '-3.000000',
long: '-3.000000'
},
{
rua: 'dos bobos',
numero: '230',
lat: '-3.500000',
long: '-3.500000'
}
]
},
{
id: 2,
nome: 'Empresa 2',
enderecos: [
{
rua: 'dos bobos',
numero: '120',
lat: '-3.700000',
long: '-3.700000'
},
{
rua: 'dos bobos',
numero: '121',
lat: '-3.200000',
long: '-3.200000'
}
]
}
];
$scope.distancia = function(lat1, long1, userLat, userLong) {
return Math.floor((Math.random()*4)+1);
};
};