Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

$scope.array.push(objeto) não é reconhecido como função :S

Bom dia, galera. Gostaria de uma ajuda de vocês pra entender o que está acontecendo com o meu código.

Estou querendo inserir novas informações em um array mas o push não funciona.

Vamos ver se eu consigo explicar melhor mostrando o código pra vcs.

<!--minhapagina.html-->
<input type="number" ng-model="formulario.qtdAlunos" class="form-control" required>

<a ng-href="#/proxima_etapa" ng-disabled="!formulario.qtdAlunos" ng-click="addItem(formulario)" class="btn btn-success">Avançar</a>

Como podem ver, esta página contém um input number que armazena a model formulario.qtdAlunos e um link que pega o valor contido no input e envia para a controler através do ng-click addItem(formulario) .

//minhaController.js
app.controller('minhaController', function($scope) {

    $scope.myForm = [];

    $scope.addItem = function (formulario) {
        console.log(formulario);
        $scope.myForm.push(formulario);        
    }
});

A controller contém um array $scope.myForm = [] que irá receber os objetos.

A chamada addItem é feita, recebendo os valores na função através do objeto formulario.

O console.log mostra que os valores estão sendo enviados, {qtdAlunos: 500}.

Mas, ao passar essas informações para o myForm através do push ( $scope.myForm.push(formulario); ) o console me retorna um erro.

TypeError: $scope.myForm.push is not a function

Pesquisei o final de semana inteiro mas não consegui achar uma solução.

Alguém pode ajudar? :S

1 resposta
solução!

Acho que consegui, galera.

myForm = [];
$scope.addItem = function (formulario) {
  console.log(formulario);
  myForm.push(formulario);        
}

Bastou retirar o $scope do objeto.

Fica a dica caso alguém passe pelo mesmo problema que eu. :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software