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

Atualizar div do marko mantendo os scripts importados no index.mrko

Boa tarde galera.

Então estou fazendo uma aplicação node utilizando express.static juntamente com marko e jquery.

Qaundo faço a seguinte requisição:

app.get("/", (req, res) => res.marko(require("../views/index.marko")));

entrego a pagina index.marko como se fosse meu index.html dentro dela utilizo o seguinte jquery:

$(".botao").click(function() {

    $.get("/consulta", function(resultado) {

        $("#dados").html(resultado);
    });
});

e no node tenho seguinte rota:

app.get("/consulta", function(req, res){

        query.consulta(res);
    });

até aqui tudo bem rodou, porem o meu jquery ele entrega outra pagina marko, que deveria apenas renderizar a div selecionada, e isso não ocorre ele limpa todo o HTML tirando minhas importações de scripts.

Como faço para entregar este outro marko apenas na div, sem alterar o html inteiro?

Div Atual:

<html>
    <head>
        <meta charset="utf-8" lang="pt-br">
        <link rel="stylesheet" href="/estatico/css/estilo.css">
        <link rel="stylesheet" href="/estatico/bootstrap/css/bootstrap.css">
    </head>
    <body>

        <div class="container">

            <input type="text"/>
            <button class="botao">Pesquisar</button>

            <div>
                <button id="cadastrar">Cadastrar</button>
            </div>

            <div id="dados">
                <span id="mensagem"></span>
            </div>
        </div>



        <script src="/estatico/js/jquery.js"></script>
        <script src="/estatico/js/pesquisa.js"></script>
        <script src="/estatico/js/cadastrar.js"></script>
        <script src="/estatico/js/adiciona.js"></script>
    </body>
</html>

Resultado Atual quando entrego o outro marko na DIV:

<table class="table">
    <thead>
        <tr>
            <th>Descricao</th>
            <th>Prazo</th>
            <th>Loja</th>
        </tr>
    </thead>
    <tbody>

        <for|t| of=data.resultados>
            <tr>
                <td>${t.descricao}</td>
                <td>${t.prazo}</td>
                <td>${t.loja}</td>
            </tr>
        </for>
    </tbody>
</table>

Resultado esperado:

<html>
    <head>
        <meta charset="utf-8" lang="pt-br">
        <link rel="stylesheet" href="/estatico/css/estilo.css">
        <link rel="stylesheet" href="/estatico/bootstrap/css/bootstrap.css">
    </head>
    <body>

        <div class="container">

            <input type="text"/>
            <button class="botao">Pesquisar</button>

            <div>
                <button id="cadastrar">Cadastrar</button>
            </div>

            <div id="dados">
                <span id="mensagem"></span>
        <table class="table">
    <thead>
        <tr>
            <th>Descricao</th>
            <th>Prazo</th>
            <th>Loja</th>
        </tr>
    </thead>
    <tbody>

        <for|t| of=data.resultados>
            <tr>
                <td>${t.descricao}</td>
                <td>${t.prazo}</td>
                <td>${t.loja}</td>
            </tr>
        </for>
    </tbody>
</table>
            </div>
        </div>



        <script src="/estatico/js/jquery.js"></script>
        <script src="/estatico/js/pesquisa.js"></script>
        <script src="/estatico/js/cadastrar.js"></script>
        <script src="/estatico/js/adiciona.js"></script>
    </body>
</html>

Desde já muito obrigado.

1 resposta
solução!

Depois de pesquisar bastante até não achar a solução escrevi o tópico e minutos seguintes identifiquei o erro... kkkkk

Estava renderizando uma DIV e quando tentava renderizar a outra div não ia pq havia removido no primeiro click quando passei o MARKO...

ADMs Favor excluir topico obrigado kkkk

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