angularjs - Create a single list by taking data in more than one class

1

Srs., good afternoon!

I'm trying to create a list to be displayed in a view, to fill the list part of the information I get in a certain class (Escalation) and other information I should get on other classes, for example (PeopleObject).

The reason is ... in the class Escalation I have the entities' id's and several other data, already in the PeopleObject class I have the name of these entities.

To mount the list, I need to display the name that is in the PeopleObject class and the data for that name, which are in the Escalation class.

What I did so far was the following, in my controller, I consume a service that returns the data from the escalation, hence I pass the data returned from the service to variables and then write to an object, however I also need to record the names associated with the class's escalation id's, how do I do this?

//CONTROLE

example.controller('equipecontrol', ['EquipeService','PessoasService','$scope','$q', function(EquipeService,PessoasService,$scope,$q) {

  Parse.initialize('APPLICATION_ID', 'JAVASCRIPT_KEY'); 
  Parse.serverURL = 'https://parseapi.back4app.com';

  var $scope.equipes = {};

  EquipeService.getEscalacao().then(function(escalacao) {
      
      for (var i = escalacao.length - 1; i >= 0; i--) {

        var objescalcao = escalacao[i];

        ngolsjogador  = objescalcao.attributes['Gols'];               //Quantidade de Gols do Jogador
        nfltajogador  = objescalcao.attributes['faltas'];             //Quantidade de Faltas do Jogador
        ncrtamarelos  = objescalcao.attributes['cartao_amarelo'];     //Quantidade de Cartões Amarelos
        ncrtvermelhos = objescalcao.attributes['cartao_vermelho'];    //Quantidade de Cartões Vermelhos
        nptoscraque   = objescalcao.attributes['PontuacaoCraque'];    //Quantidade de Pontos para eleição do Craque
        nptosdestaque = objescalcao.attributes['PontuacaoDestaque'];  //Quantidade de Pontos para eleição Destaque
        nptosmaster   = objescalcao.attributes['PontuacaoMaster'];    //Quantidade de Pontos para eleição Master
        nptosgoleiro  = objescalcao.attributes['pontuacaogoleiro'];   //Quantidade de Pontos para eleição Goleiro

        idjogador     = objescalcao.attributes['jogador'].id;         //id do jogador
        idtime        = objescalcao.attributes['time'].id;            //id do time/equipe
        idjogoude     = objescalcao.attributes['jogoude'].id;         //id da posição que jogador atuou
        idpelada      = objescalcao.attributes['pelada'].id;          //id da pelada

        nomepessoa = nomedojogador(idjogador);            <--- como deve pegar o nome?
        nomeposicaooriginal = nomedaposicao(idjogador);   <--- como deve pegar o nome?
        nomedotimequejogou = nomedotime(idtime);          <--- como deve pegar o nome?
        posicaoquejogou = nomedaposicao(idjogoude);       <--- como deve pegar o nome?
        nomedapelada = nomedapelada(idpelada);            <--- como deve pegar o nome?
          
        $scope.equipes =  { "jogador": nomepessoa,
                            "posicaoriginal":nomeposicaooriginal,
                            "time": nomedotimequejogou,
                            "nomepelada": nomedapelada,
                            "funcao": posicaoquejogou,
                            "gols": ngolsjogador,
                            "faltas": nfltajogador,
                            "cartoesamarelo": ncrtamarelos,
                            "cartoesvermelho": ncrtvermelhos,
                            "pontoscraque": nptoscraque,
                            "pontosdestaque": nptosdestaque,
                            "pontosmaster": nptosmaster, 
                            "pontosgoleiro": nptosgoleiro
                          };
      }
    }, 
      function(error){
        console.log('Error MinhaPelada-Controller-EquipeService: '+error)
      }
  );
}]);


//SERVICE

(function() {
 'use strict';

  var example = angular.module('starter')
 
  example.service('EquipeService', ['$q', function($q) {
      
    var aDadosEscalacao = {};
    
    this.getEscalacao = function(params) {

      Parse.initialize('USiqtSJIIvfWQwbmDyNsoXsrbTMWmCglaUcKHLmn', 'IaIq7yPZU8vgrCwS1Q7Vee4vdL4ky5tNd2nqZfXw'); 
      Parse.serverURL = 'https://parseapi.back4app.com';

      var deferred = $q.defer();

      var EscalacaoObject = Parse.Object.extend("Escalacao");
      var Escalacaoquery = new Parse.Query(EscalacaoObject);

      if(params !== undefined) {
        if(params.idPeople !== undefined) {
          Escalacaoquery.equalTo("jogador", params.idPeople);
        }        

        if(params.idPosicao !== undefined) {
          Escalacaoquery.equalTo("jogoude", params.idPosicao);
        }        

        if(params.idEquipe !== undefined) {
          Escalacaoquery.equalTo("time", params.idEquipe);
        }        

        if(params.idEvento !== undefined) {
          Escalacaoquery.equalTo("pelada", params.idEvento);
        }        
      }

      return Escalacaoquery.find({
        success: function(results) {
          deferred.resolve();
          },
            error: function(error) {
              console.log("Error da Query Escalcao: " + error.code + " " + error.message);
              deferred.reject(error);
            }
      })
        return deferred.promise
    }
  }]) 
}).call(this);
    
asked by anonymous 03.04.2017 / 20:36

0 answers