node.js ejs rerender div afte ajax
我的问题是在succes ajax调用后更新div块。 所以我这样做:
我的div:
<div class="lists"> <% for(var i=0; i<searchItem.length; i++) {%> <a class="list-link" href="#"><div class="list"><%= searchItem[i] %></div></a> <% } %> </div>
我的jQuery的Ajax调用:
$.ajax({ url: '/search?val=' + encodeURIComponent($('#search-input').val()), success: function(data) { console.log('DATA-' + data); new EJS({url:' /views/dropdown.ejs'}).update('lists',data) } });
我的项目结构:
但我得到了404错误,因为ejs无法看到dropdown.ejs模板( http:// localhost:3000 / views / dropdown.ejs NOT FOUND)。 为什么?
另一个问题什么types的select器我需要在.update('列表',数据),我的div块的Id或类写入?
我假设你正在使用Express和views / dropdown.ejs是你的快递后台的一个视图。
如果我的假设是正确的,则不能直接访问后端的视图。 你必须为这个视图创build一个路由器,或者你可以把这个模板放在你的静态文件夹中。
router.get('/template/:templateName', function(req, res){ res.render(req.params.templateName, { title: 'Template' }); }); // Or put your template inside public folder app.use(express.static(path.join(__dirname, 'public')));
至于你的第二个关于你的DOM的select器的问题,这取决于你想要达到什么。 使用类select器将获得具有该类名称的所有DOM,并且如果为您提供了一个DOM数组,则对于该ID(需要在特定页面上是唯一的),将select单个DOM。
看看你的示例,我认为你需要使用ID和目标的DOM更新内容。