Lista mustache - métodos de filtrar
Tenho que apresentar três métodos diferentes para apresentar os locais de acordo com a sua situação, os dois primeiros métodos obtive sucesso, mas o terceiro está dando errado, ele consiste em filtrar usando dois parâmetros dentro de uma função, seguindo os parâmetros da function principal, mas como nomes diferentes, mais ou menos seguindo esse exemplo de ordenar lista
function trocar(vet, j) {
var aux = vet[j];
vet[j] = vet[j + 1];
vet[j + 1] = aux;
}
function ordenar(vet, sort) {
var aux = 0;
for (var i = 0; i < vet.length; i++) {
for (var j = 0; j < vet.length - 1; j++) {
if (sort(vet, j)) {
trocar(vet, j);
}
}
}
return vet;
}
var lista = [2, 3, 6, 8, 1, 4, 9];
alert(ordenar(lista, function(vetor, pos) {
return vetor[pos] < vetor[pos + 1]
}));
E aqui tem o que estou usando
<div id="output"></div>
<div id="gerar"><//div>
<script type="text/html" id="template">
<div id="col-sm-4" style="background-color:#EEE8AA;">
<b> Todos os serviços</div> </b>
<p> {{#informacoes}}{{Nome}} {{/informacoes}} </p>
<div id="col-sm-4" style="background-color:#8FBC8F;">
<b>Serviços online</div></b>
<p> {{#localizado}}{{#Localizado}}{{Nome}}{{/Localizado}} {{/localizado}}
<!-- Para mostrar que não tem pontos localizados-->
{{^localizado}}NENHUM LOCALIZADO!{{/localizado}}</p>
<div id="col-sm-4" style="background-color:#87CEEB;">
<b>Pontos não localizados </div></b>
<p> {{#naolocalizado}}{{^Localizado}}{{Nome}} {{/Localizado}}{{/naolocalizado}}
<!-- Para mostrar que não tem pontos não localizados-->
{{^naolocalizado}}TODOS FORAM LOCALIZADOS!{{/naolocalizado}}</p>
</div>
</script>
$(document).ready(function() {
var output = $("#output");
var template = $("#template").html();
function filtrar(data, status) {
var lista = [];
for (var i = 0, max = data.length; i < max; i++) {
if (data[i].Localizado === status) {
lista[i] = data[i];
}
}
return lista;
}
var pontos = {
informacoes: [{
"Nome": "Ponto1",
"Localizado": false
}, {
"Nome": "Ponto2",
"Localizado": true
}, {
"Nome": "Ponto3",
"Localizado": true
}]
};
/*método 1
var informacoeslocalizadas = _.filter(pontos, function(item) {
return item.Localizado === true;
});
var informacoesnaolocalizadas = _.filter(pontos, function(item) {
return item.Localizado === false;
}); */
/* método 2
var informacoeslocalizadas = filtrar(pontos, true)
var informacoesnaolocalizadas = filtrar(pontos, false)*/
/* método 3 (falta corrigir algo)
var informacoeslocalizadas = filtrar(pontos, function(data, item){
if (item.Localizado === data) {
informacoeslocalizadas.push(data);
return informacoeslocalizadas === true;
}
});
var informacoesnaolocalizadas = filtrar(function(data, item){
if (item.Localizado === false) {
informacoesnaolocalizadas.push(data);
} return informacoesnaolocalizadas;
});*/
var todosOsPontos = pontos;
var informacoes = {
informacoes: todosOsPontos,
localizado: informacoeslocalizadas ,
naolocalizado: informacoesnaolocalizadas
};
var html = Mustache.render(template, informacoes);
output.append(html);
});Discussão (0)
Carregando comentários...