Uncaught (в обещании) TypeError: $ scope.GetNomePacienteIndicou не является функцией - PullRequest
0 голосов
/ 28 июня 2019

Quando vou abrir uma modal (AngularJs) и реализуемую игру: $ scope.GetNomePacienteIndicou Ao fechar essa modal e quando vou abri-la novamente o консоль do navegador apresenta o seguinte erro:

agendactrl.js:1787 Uncaught (in promise) TypeError: $scope.GetNomePacienteIndicou is not a function
    at b.$scope.ShowModalConvertPaciente (agendactrl.js:1787)
    at fn (eval at compile (angular.js:15358), <anonymous>:4:256)
    at e (angular.js:26994)
    at b.$eval (angular.js:18161)
    at b.$apply (angular.js:18261)
    at HTMLElement.<anonymous> (angular.js:26999)
    at HTMLElement.dispatch (jquery.min.js:3)
    at HTMLElement.q.handle (jquery.min.js:3)

Форма для отправки (segainte linta 1787 do código):

 Dados_Paciente = await $scope.GetNomePacienteIndicou($scope.chave_indicacao);

Функциональная декларация:

$scope.GetNomePacienteIndicou = async function(chave_indicacao){

    chave = {};
    chave.chave_indicacao = chave_indicacao;
    PacienteIndicou = {};
    //console.log('teste getnomepaciente: ', chave);
    return AgendaService.GetNomePacienteIndicou(chave)
        .then(function(data){

            $scope.GetNomePacienteIndicou = data.data.dados[0];
            this.PacienteIndicou = $scope.GetNomePacienteIndicou; 
            return this.PacienteIndicou;
        });

};

Como posso resolver isso?

1 Ответ

0 голосов
/ 28 июня 2019

Не перезаписывать функцию $scope.GetNomePacienteIndicou:

$scope.GetNomePacienteIndicou = async function(chave_indicacao){
    chave = {};
    chave.chave_indicacao = chave_indicacao;
    PacienteIndicou = {};
    //console.log('teste getnomepaciente: ', chave);
    return AgendaService.GetNomePacienteIndicou(chave)
        .then(function(data){
            ̶$̶s̶c̶o̶p̶e̶.̶G̶e̶t̶N̶o̶m̶e̶P̶a̶c̶i̶e̶n̶t̶e̶I̶n̶d̶i̶c̶o̶u̶ ̶=̶ ̶d̶a̶t̶a̶.̶d̶a̶t̶a̶.̶d̶a̶d̶o̶s̶[̶0̶]̶;̶ 
            return data.data.dados[0];
            //this.PacienteIndicou = $scope.GetNomePacienteIndicou; 
            //return this.PacienteIndicou;
        });
};

Также следует помнить, что обещания ES6, возвращаемые async, не интегрированы с платформой AngularJS и ее циклом дайджеста. Только операции, которые применяются в контексте выполнения AngularJS, выиграют от привязки данных AngularJS, обработки исключений, отслеживания свойств и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...