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

Asked

Viewed 130 times

1

Ladies and gentlemen, good afternoon!

I’m trying to create a list to be displayed in a view, to fill the list part of the information I pick up in a certain class (Escalation) and other information I should pick up in other classes, for example(Peopleobject).

The reason is ... in the Schedule class I have the id’s of the entities and various other data, already in the Peopleobject class I have the name of these entities.

To assemble the list, I need to display the name found in the Peopleobject class and the data relating to this name, which are in the Schedule class.

What I’ve done so far is this, in my controller, I consume a service that returns the scaling data, then I pass the data returned from the service to variables and then write to an object, but I also need to record the names associated with the scaling class id, how to 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);

  • Hello, good morning, good morning! , does anyone have any hint of which resource I could use at the points indicated by arrow "<---" to get the desired information and complete the recording of the object?

  • Someone has an idea?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.