【问题标题】:Node.js Express: Ajax call from ejs to app.js fetching data render div dynamicallyNode.js Express:从 ejs 到 app.js 的 Ajax 调用动态获取数据渲染 div
【发布时间】:2014-06-20 01:12:00
【问题描述】:

我有一个带有 node.js 的 express 应用,

1) app.get('/', routes.index) 指向我的 index.ejs。

2) 我的 index.ejs 上有一个按钮。当它被点击时,我想调用 app.js 中的 dataGrab 函数来远程检索数据并在 index.ejs 中动态显示为<table>

在我的 app.js 中

var data=[];
grab = function() {
   .... grab data remotely and push to data[]
}

由于按钮实际上位于客户端,如果我想在 app.js 中调用 grab() 来填充 data[] 并使用它在 index.ejs 上呈现表格,那么使用 ajax 是唯一的方法吗?如果可以,能否分享一个简单的代码示例?

问候 锤子

【问题讨论】:

  • 是的,AJAX 是唯一的方式(无需刷新)——只需通过 JS 调用你的路由
  • 这里仍然存在一个问题,在我执行此 ajax 调用后,浏览器将导航到 localhost:3000/grab。如果我单击 btn 回到 localhost:3000。结果正确地附加到表元素。我可以知道如何停止这种意外导航吗?

标签: ajax node.js express ejs


【解决方案1】:

感谢 tymeJV,它发送了我正在使用下面的代码,

*编辑添加ajax调用

在我的 ejs 内部我正在使用

<script>
$.get('/grab',function(data) {
        for(var h=0; h<data.length;h++){
    $('#newsItemTable').append('<tr><td>'+data[h].name+'</td></tr>');
        }
     });
</script>

在我的 app.js 中我正在使用

app.get('/grab', function(req, res) {

....
res.send(data);

}

【讨论】:

  • 这里仍然存在一个问题,在我执行此 ajax 调用后,浏览器将导航到 localhost:3000/grab。如果我单击 btn 回到 localhost:3000。结果正确地附加到表元素。我可以知道如何停止这种意外导航吗?
猜你喜欢
  • 2015-09-12
  • 1970-01-01
  • 2015-07-17
  • 2016-11-01
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
相关资源
最近更新 更多