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

Não consigo chamar método dentro de classe.

O primeiro código chama o método validacoes da classe Validator. Dentro desse método deveria ser chamado o método validaNome. O problema é que não consigo chamar de jeito nenhum. O que está errado? Haa, antes q perguntem oq aparece no console, ja digo que não aparece nada, nem se quer um erro. Fiz questão de colocar um alert dentro do método validaNome mas o alert também não está sendo chamado. Ou seja, método não está sendo lido e eu n sei pq.

var userList = document.getElementById("usersList");
var nameInput = document.getElementById("nomeInput");
var emailInput = document.getElementById("emailInput");
var empresaInput = document.getElementById("empresaInput");
var addButton = document.getElementById("addButton");

addButton.addEventListener("click",function(){

var validado =Validator.validacoes(nameInput.value,emailInput.value,empresaInput.value);
alert("fora do validator");
create(validado.name.value,validado.email.value,validado.empresa.value);
});

function create(name,email,empresa){
var data={
name:name,
email:email,
empresa:empresa
};

return firebase.database().ref().child("users").push(data);
}

firebase.database().ref("users").on("value", function(snapshot){
userList.innerHTML = "";
snapshot.forEach(function (item){
var li = document.createElement("li");
li.appendChild(document.createTextNode(item.val().name + ": " + item.val().email + ": "+ item.val().empresa));
usersList.appendChild(li);
});
});
class Validator {

    constructor() {

        throw new Error('Esta classe não pode ser instanciada');
    }


static validacoes(nome,email,empresa) {

  var resultado = true;
    var erros = [];

alert("validator0.1");

    if ((!validaNome(nome)) || nome.length == 0) {

      alert("errou");

        erros.push("Nome inválido");
        resultado = false;
    }

alert("validator0");

exibeMensagensDeErro(erros);

if(!resultado){throw new Error('Tem coisa errada!');}

alert("validator1");

var validado={
  nome:nome,
  email:email,
  empresa:empresa
}

alert(" validator2");

return validado;
}


 validaNome(texto) {
    if(!/[A-Z][a-z].* [A-Z][a-z].*/.test(texto)){

      alert(" validaNome false");

      return false;
    }

alert(" validaNome true");

    return true;
}

static exibeMensagensDeErro(erros) {
    var ul = document.querySelector("#mensagens-erro");
    ul.innerHTML = "";

    erros.forEach(function(erro) {
        var li = document.createElement("li");
        li.textContent = erro;
        ul.appendChild(li);
    });
}


}
1 resposta
solução!

Achei o erro.