Esta es la primera vez que uso el marco JS, estoy tratando de pasar una matriz de objetos a una vista parcial usando el motor de vista del manillar, pero no se muestra nada en la página. Hice lo mismo en otra página con una matriz diferente y funcionó, pero no parece funcionar con estos datos en particular y no sé por qué. Por favor ayuda.
app.post('/building-works', (req, res) => { let theProjects = shared.projects; let dataObject = {}; let theArray = []; const search = req.body.searchWork; for(let projects of theProjects){ if((search === projects.state)){ dataObject.state = projects.state; dataObject.lga = projects.lga; for(let localG of projects.lga){ dataObject.lga = projects.lga; dataObject.communties = localG.communities; theArray.push(dataObject); } } for(let lga of projects.lga){ if(search === lga.lgaName){ dataObject.state = projects.state; dataObject.lga = lga.lgaName; dataObject.communities = lga.communities; theArray.push(dataObject); } for(let communities of lga.communities){ if(search === communities.community){ dataObject.state = projects.state; dataObject.lga = lga.lgaName; dataObject.community = communities.community; dataObject.building = communities.projects.building; dataObject.water = communities.projects.water; theArray.push(dataObject); } } } } if(!res.locals.projects) res.locals.projects = {}; res.locals.projects = theArray; console.log(theArray); res.render('building-works', {title: 'Building Works'}); });Este es un archivo parcial
<div class="flex flex-col justify-center items-center"> <h1 class="text-xl w-3/4 text-atasp-mid-red uppercase">Search Projects</h1> <form class="mx-auto flex flex-col w-full md:flex-row px-5 py-3 items-center justify-center" action="" method="post"> <input type="text" name="searchWork" placeholder="search by state, LGA, community or project" class="bg-gray-200 w-3/4 outline-none p-2 rounded-t-md md:rounded-t-none md:rounded-l-md"> <button type="submit" class="bg-atasp-light-green rounded-b-md w-3/4 md:w-auto text-white md:rounded-bl-none md:rounded-r-md hover:bg-atasp-dark-green p-2">Search</button> </form> </div> {{#each theArray}} <div> <p>state</p> <p>lga</p> <p>community</p> <p>building</p> </div> {{/each}}En la parte res.render de su controlador, pase theArray como parte del objeto de datos para la plantilla
... res.render('building-works', {title: 'Building Works', theArray}); ...