【问题标题】:express and jade: loop and create dynamic idsexpress 和jade:循环并创建动态ID
【发布时间】:2013-10-01 19:24:08
【问题描述】:

好的,这应该是节点上的一个简单问题。

使用 express,有一个名为 app.js 的文档,另一个是 index.jade,还有一个 index.js,通常还有另一个 javascript,比如 server.js,服务器的大部分工作都在这里完成(这里的代码可以在 app.js 中,但假设它们是不同的文件)。

假设我有两个这样的对象

myIDs   = ['afoo', 'abar'];
myArray = ['foo', 'bar'];

在 server.js 中,我想在jade中遍历它们的元素,并创建分别具有值 foo 和 bar 并且它们的 id 分别为 afoo 和 abar 的按钮。我们怎么能做这样的事?

此外,是否有可能实现鼠标点击发生在这些按钮之一?我试图为我使用类似这样的东西动态创建的特定按钮命名

html = "<button id=\"aUniqueID\">Press me!</button>"
document.getElementById('puff').innerHTML = html;

但是,即使它出现在浏览器中,按下按钮时也没有任何反应(我正在向服务器发送消息,并且服务器应该打印控制台日志)。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery node.js express pug


    【解决方案1】:

    我建议你不要使用内联函数,我会在客户端附加点击事件,但你可以像正常使用玉石一样内联添加它

    这假设每个按钮的 value 和 id 位于相同的数组位置:

    myIDs   = ['afoo', 'abar'];
    myArray = ['foo', 'bar'];
    
    each button_id, i in myIDs
        button(id="#{button_id}", onclick="yourFunctionHere();") #{myArray[i]}
    

    更新:

    将数组传递给 .jade 页面就像:

    app.get('/your-url-path', function(req, res){
    
        var my_ids_array = ['afoo', 'abar'];
        var my_values_array = ['foo', 'bar'];
    
        res.render('your-jade-page', { myIDs: my_ids_array, myArray: my_values_array });
    });
    

    【讨论】:

    • 谢谢驱动。我接受它,但我想我的问题更根本,因为我不知道如何将变量传递给 index.jade。
    • 好的,所以可能在 server.js 中你渲染页面如下: res.render('your-jade-page', {myIDs: [your-array], myArray: [you-array] }),因此您只需生成这些数组并将它们作为对象属性传递给 res.render 的第二个参数
    • 我相信你对这种方法是正确的。但是,express 生成模板的方式,这个 res.render(...) 命令本身在目录 routes 下的另一个文件中。所以,有点乱。在 app.js 中,我们有这样的语句: app.get('/', routes.index); ,这个索引函数是从文件 routes/index.js 中导出的,server.js 脚本正在加载 socket.io 并导出一个初始化函数,该函数执行 io = io.listen(server); io.sockets.on("连接", handleConnection);最后在 app.js 中,一旦创建了服务器,就会调用这个初始化函数
    • 带有格式为 require('./routes/server.js').initialize(server); 的语句其中 'server' 是使用 http.createServer(app).listen(app.get('port'), function(){}); 之类的语句初始化的变量
    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多