upload data as appropriate

0

I have a factory with a data arrangement of provinces and cities and what I want is for the province to charge me according to the province. This I did the problem is that when the province changes I load the data but with blank spaces.

.factory('provincias',function(){
  var prov = [];
  var provincias = [
      {idProvincia:1,'nombreProvincia':'Valdivia',idRegion:1},
      {idProvincia:2,'nombreProvincia':'Del Ranco',idRegion:1},
      {idProvincia:3,'nombreProvincia':'No hay Prvincias Ingresadas',idRegion:2}

];
return{
    getProvincias: function(idRegion){
        prov = [];
        for(var i = 0;i < provincias.length; i++){

            if(provincias[i].idRegion == idRegion){
                prov[i] = provincias[i];
            }

        }
        return prov;
    }
  }
})



.factory('ciudades',function(){
var ciud = [];
  var ciudades= [
                {'id':'1','name':'Valdivia',idProvincia:1},
                {'id':'2','name':'Corral',idProvincia:1},
                {'id':'6','name':'Lanco',idProvincia:1},
                {'id':'7','name':'Los Lagos',idProvincia:1},
                {'id':'8','name':'Mafil',idProvincia:1},
                {'id':'9','name':'Mariquina',idProvincia:1},
                {'id':'10','name':'Panguipulli',idProvincia:1},
                {'id':'3','name':'Futrono',idProvincia:2},
                {'id':'4','name':'La Union',idProvincia:2},
                {'id':'5','name':'Lago Ranco',idProvincia:2},
                {'id':'11','name':'Rio Bueno',idProvincia:2}
  ];

    return{
        getCiudades:function(idProvincia){
            ciud = [];
            for(var i = 0; i < ciudades.length; i++){
                if(idProvincia == ciudades[i].idProvincia){
                ciud[i] = ciudades[i];
                }
            }

            return ciud;

    }
  }
})
    
asked by Dagg 31.01.2017 в 23:15
source

1 answer

0

The blanks of the arrangement is because you are using prov[i] = to save, i always progress but there is not always data to save and those jumps that are given when the region does not match are the spaces that you see empty.

prov is an array, so you can use push to enter data:

getProvincias: function(idRegion){
    prov = [];
    for(var i = 0;i < provincias.length; i++){

        if(provincias[i].idRegion == idRegion){
            prov.push(provincias[i]);
        }

    }
    return prov;
}

Or better yet, use filter (documentation)

getProvincias: function(idRegion){
    return provincias.filter(function(provincia) {
        return provincia.idRegion == idRegion;
    });
}

And apply the same for getCiudades .

    
answered by 01.02.2017 / 00:52
source