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

Rota /livros/form preenchendo os campos com undefined.

Ao modificar o arquivo form.marko e a rota na Aula 5.6 para enviar um objeto livro em branco, os campos estão aparecendo no form com o valor undefined, comportamento diferente do vídeo.

O que poderia ser isso?

4 respostas

Boa noite, Silvio! Como vai?

A versão do Node e das bibliotecas que vc está utilizando são as mesmas que eu mostro durante o curso? Outra coisa, vc poderia compartilhar seu projeto no github e mandar o link aqui para que eu possa tentar simular o seu problema de modo a te ajudar de forma mais efetiva?

Qualquer coisa coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Eu tinha uma versão mais atualizada do Node antes de começar o curso aí acabei tentando com ela. O projeto está aqui:

https://github.com/SilvioCaetano/CursoNodeJS

solução!

Olá Silvio, tudo bom? Eu tive esse mesmo problema. Procurei sobre esse problema e encontrei esse link https://github.com/marko-js/marko/wiki/Deprecation:-nonstandard-template-literals É necessário alterar a passagem do valor para o marko. Basta retirar as aspas ou crase ou apóstrofe. Segue o código do form.marko

<html>
    <body>
        <h1>Cadastro de livros</h1>

        <form action="/livros" method="post">

            <if(data.livro.id)>
                <input type="hidden" name="_method" value="PUT">
                <input type="hidden" id="id" name="id" value=`${data.livro.id}`/>
            </if>

            <div>
                <label for="titulo">Titulo:</label>
                <input type="text" id="titulo" name="titulo" placeholder="coloque o titulo" value=data.livro.titulo />
            </div>
            <div>
                <label for="preco">Preço:</label>
                <input type="text" id="preco" name="preco" placeholder="150.25" value=data.livro.preco />
            </div>
            <div>
                <label for="descricao">Descrição:</label>
                <textarea cols="20" rows="10"  id="descricao" name="descricao" placeholder="fale sobre o livro">${data.livro.descricao}</textarea>
            </div>

            <input type="submit" value="Salvar" />
        </form>
    </body>
</html>

Funcionou perfeitamente, obrigado!