Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Valores NaN retornados com o Decorator

Na aula 3 (O Poder dos Decorators) vídeo 7 (Criando nosso próprio DOM Injector e Lazy loading)

O professor cria um decorator para acessar os elementos do DOM. Fiz a implementação e o decorator está buscando sempre NaN para os valores, conforme indica abaixo.

Negociacao {data: Invalid Date, quantidade: NaN, valor: NaN} volume: (...) data: Invalid Date {} quantidade: NaN valor: NaN proto: Object

Meu código está assim: Decorator:

export function domInject(selector: string) {
    return function(target: any, key: string) {
        let elemento: JQuery;
        const getter = function() {

            if(!elemento){ 
                console.log(`buscando ${selector} para injetar em ${key}`);
                elemento = $('selector');
            }
            return elemento;
        }

  decorator em getters
        Object.defineProperty(target, key, {
            get: getter
        })
    }
}

Na minha controller estou acessando os valores assim:

let data = new Date(this._inputData.val());

const negociacao = new Negociacao(data,
            parseInt(this._inputQuantidade.val()),
            parseFloat(this._inputValor.val()));

Conseguem ver algum problema no meu código que explique o NaN como retorno?

3 respostas
solução!

Boa noite, Luiz! Como vai?

O único detalhe de errado que eu vi foi na linha elemento = $('selector') que deveria ser elemento = $(selector). Faça essa correção e veja se as coisas funcionam como vc esperava.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Pôxa vida, era isso mesmo Gabriel Leite ! muito obrigado!

Por nada, Luiz! Sempre que tiver alguma dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!