【问题标题】:node.js ejs rerender div afte ajaxnode.js ejs 在 ajax 之后重新渲染 div
【发布时间】:2015-09-12 18:22:59
【问题描述】:

我的问题是 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)。为什么?

另一个问题,我需要在 .update('lists',data) 、我的 div 块的 Id 或类中写入什么类型的选择器?

【问题讨论】:

    标签: javascript jquery ajax node.js ejs


    【解决方案1】:

    我假设您使用的是 Express,views/dropdown.ejs 是您 express 后端的一个视图。

    如果我的假设是正确的,您将无法直接访问后端视图。您必须为此视图创建一个路由器,或者您可以将此模板放在您的静态文件夹中。

    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 选择器的第二个问题。这取决于您想要实现的目标。使用类选择器将获取具有该类名称的所有 DOM,如果给您一个 DOM 数组,至于 ID(需要在某个页面上是唯一的)它将选择单个 DOM。

    查看您的示例,我认为您需要使用 ID 并定位该 DOM 来更新内容。

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2016-06-10
      • 2019-02-03
      相关资源
      最近更新 更多