带有Node.js Jade和Ajax的静态导航栏和页脚

slepnerp

单击导航栏中的链接时,我试图在静态导航栏和页脚之间呈现动态内容,但是每次单击链接时,它都会复制包括导航栏和页脚的内容。我正在使用带有express和jade模板引擎的节点。

这是我(简体)最顶级的玉器文件。

doctype html
html
    head
        title= title
        // { links }
    body
        block navbar
            #navLinks.nav.navbar-nav
                    a(href='/', id='home') Home
                    a(href='/ourteam', id='team') Our Team
                    a(href='/blog', id='blog') Blog
        #pageBody
            block content
        block footer
            // { footer content }
    // { scripts }

我的jQuery AJAX脚本:

$('#navLinks').on('click', 'a', function(event) {
    event.preventDefault();
    console.log("Hello world");

    var url = $(this).attr('href');

    updatePage(url);

});

function updatePage(url) {

    var pageBody = $('#pageBody');

    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'html'
    }).done(function(html) {
        console.log(html);
        pageBody.html(html);
    });
}

问题是,每当我单击导航栏中的任何链接时,它都会复制#pageBody div中的导航栏。我假设这是因为路由器路由到的内容文件扩展了我的顶级文件。我一直在网上寻找答案,但找不到任何解决方案。

任何建议将不胜感激。

马蒂亚斯

您自己说了“假设是因为内容文件...扩展了我的顶级文件”,从而给出了答案@jraede是绝对正确的询问什么是加载阻止你的谐音

全面了解:您的路线显然是在调用可呈现“经典”全页html响应的操作。因此,您的特定玉器模板可能会扩展“最顶层”的布局文件,如问题中引用的代码所示。这对于http://your-project.tld/ourteam在浏览器中直接请求(例如说)很不错

但是现在您只想呈现部分内容,并通过ajax / xhr传输此部分html代码,最终仅替换#pageBodydiv中的html 实现此目的的一种方法是定义其他路线/动作和玉器模板。尝试以下食谱:

  1. 创建一个局部模板partials/ourteam-content.jade

  2. 仅将相关内容放在其中(从内的块内容复制ourteam.jade),不要扩展主布局,在这里不要使用块定义。

  3. 为了保持整洁,请修改原始文件ourteam.jade,仅在块定义的下方添加新创建的部分模板:

    block content
      include patials/ourteam-content
    
  4. 定义另一个路线/动作并将其命名/ourteam-content

  5. app.get("ourteam-content", ...)仅渲染您的partials/ourteam-content模板。

  6. 重新路由您对“我们的团队”的ajax请求进行查询ourteam-content

我希望它有助于将您推向正确的方向!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js服务器和带有express.js的HTTP / 2(2.0)

来自分类Dev

需要带有Node和jQuery的JS

来自分类Dev

带有Node.js的静态Web应用程序?

来自分类Dev

使用带有请求包和功能pipe()的Node.js服务器吗?

来自分类Dev

后端带有Swift和Node.js的Socket.io示例

来自分类Dev

带有打字稿的Node.js require和.d.ts文件

来自分类Dev

需要帮助在滚动条上制作粘性导航栏-在Node.js / Express中使用Jade和Stylus

来自分类Dev

如何使用带有express和EJS的node.js正确“包含” EJS文件

来自分类Dev

无法在Node.js中接收带有静态表达的空获取请求

来自分类Dev

带有Node.js和parse.com后端的AngularJS SPA

来自分类Dev

Bootstrap 3 100%高度DIV,带有导航栏和粘性页脚

来自分类Dev

带有Stormpath + Jade + node.js + express的复选框

来自分类Dev

带有Express,Jest和SuperTest的Node.js永远不会失败

来自分类Dev

带有node.js / jade的Ajax

来自分类Dev

静态文件,带有Node.js和Express的样式表

来自分类Dev

带有Node.js Jade和Ajax的静态导航栏和页脚

来自分类Dev

带有jade,express和node.js的渲染模板的问题

来自分类Dev

Node.js和node_redis-解析对Jade模板的HGETALL响应(带有缓冲区的对象)

来自分类Dev

带有打字稿的Node.js require和.d.ts文件

来自分类Dev

带有Express和CORS的Node.js在这么多呼叫后挂起

来自分类Dev

Bootstrap 3 100%高度DIV,带有导航栏和粘性页脚

来自分类Dev

带有Node和Koa的AJAX 404

来自分类Dev

带有node.js代理和外部api调用的nginx

来自分类Dev

带有静态静态目录名的Node.js

来自分类Dev

带有 sequelize 和 node js 的 Mysql 原生空间函数

来自分类Dev

带有 html 和 mysql 数组的 node.js

来自分类Dev

Node.js 如何导入和导出带有子功能的模块

来自分类Dev

带有 node、express.js、ngrok 和 Dialogflow 的 Facebook 聊天机器人

来自分类Dev

带有 JS 的粘性导航栏

Related 相关文章

  1. 1

    node.js服务器和带有express.js的HTTP / 2(2.0)

  2. 2

    需要带有Node和jQuery的JS

  3. 3

    带有Node.js的静态Web应用程序?

  4. 4

    使用带有请求包和功能pipe()的Node.js服务器吗?

  5. 5

    后端带有Swift和Node.js的Socket.io示例

  6. 6

    带有打字稿的Node.js require和.d.ts文件

  7. 7

    需要帮助在滚动条上制作粘性导航栏-在Node.js / Express中使用Jade和Stylus

  8. 8

    如何使用带有express和EJS的node.js正确“包含” EJS文件

  9. 9

    无法在Node.js中接收带有静态表达的空获取请求

  10. 10

    带有Node.js和parse.com后端的AngularJS SPA

  11. 11

    Bootstrap 3 100%高度DIV,带有导航栏和粘性页脚

  12. 12

    带有Stormpath + Jade + node.js + express的复选框

  13. 13

    带有Express,Jest和SuperTest的Node.js永远不会失败

  14. 14

    带有node.js / jade的Ajax

  15. 15

    静态文件,带有Node.js和Express的样式表

  16. 16

    带有Node.js Jade和Ajax的静态导航栏和页脚

  17. 17

    带有jade,express和node.js的渲染模板的问题

  18. 18

    Node.js和node_redis-解析对Jade模板的HGETALL响应(带有缓冲区的对象)

  19. 19

    带有打字稿的Node.js require和.d.ts文件

  20. 20

    带有Express和CORS的Node.js在这么多呼叫后挂起

  21. 21

    Bootstrap 3 100%高度DIV,带有导航栏和粘性页脚

  22. 22

    带有Node和Koa的AJAX 404

  23. 23

    带有node.js代理和外部api调用的nginx

  24. 24

    带有静态静态目录名的Node.js

  25. 25

    带有 sequelize 和 node js 的 Mysql 原生空间函数

  26. 26

    带有 html 和 mysql 数组的 node.js

  27. 27

    Node.js 如何导入和导出带有子功能的模块

  28. 28

    带有 node、express.js、ngrok 和 Dialogflow 的 Facebook 聊天机器人

  29. 29

    带有 JS 的粘性导航栏

热门标签

归档