Redeem http service result in another function

Asked

Viewed 83 times

1

 controllerPrincipalService.getResultado(id).then(function(dados)
    {
        // limpando o retorno
        var p = data.search("{")-1;
        var res = data.substring(76);
        var f = res.search('<');
        dados = data.substring(p, p+f);
        resultado = JSON.parse(dados);
    });

    function pegaResultado(resultado){
        ///trabalhar com o resultado do service a cima.
        console.log(resultado);

    }

How can I work with the result of my service above in a separate function ? Service is bringing a json vi $http.get

2 answers

2


You need the get callback to run to work with the return.

What you can do is put a watch on this variable and add it to the scope.

$scope.resultado = undefined;
controllerPrincipalService.getResultado(id).then(function(dados)
{
    // limpando o retorno
    var p = data.search("{")-1;
    var res = data.substring(76);
    var f = res.search('<');
    dados = data.substring(p, p+f);
    $scope.resultado = JSON.parse(dados);
});

$scope.$watch('resultado', function(newVal, oldVal){
    ///trabalhar com o resultado do service
    console.log(newVal);
}

1

Stores your output in a root (global) scope object or variable and calls a function that makes use of this value.

var globalResultado = null;
controllerPrincipalService.getResultado(id).then(function(dados)
{
    globalResultado = JSON.parse(dados);
    pegaResultado(); //Ou qqr parte do codigo
}

function pegaResultado(){
    ///trabalhar com o resultado do service acima.
    console.log(globalResultado);
}
  • It is also possible to pass the result as a parameter to the function pegaResultado, to avoid the use of the global variable and also possible conflicts.

  • not scroll.. of null.

  • @Lucasmoura, he gets to enter the then ? puts a break point inside the then and see if it hangs there, at first it is to focus. Check if the place you are calling the pegaResultado is calling before the answer ajax.

Browser other questions tagged

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