【问题标题】:node.js + EJS + using javascript inside <% tagsnode.js + EJS + 在 <% 标签内使用 javascript
【发布时间】:2011-08-29 04:30:46
【问题描述】:

我是 node.js 的新手。我正在尝试使用 EJS 模板,但遇到了一点障碍。如果我做对了, 中的所有代码都会在服务器端执行。我不知道如何使用位于这些标签内的模块(js 文件)中的 javascript 函数。我应该像&lt;script src="..."&gt; 那样把它们包括进来吗?但这意味着它将被发送到浏览器,但我不想要那个(或者我想要吗?)。什么是正确的架构?


第二个问题是:ejs helper 具体是什么?我怎样才能做一个? (抱歉,我找不到任何简单示例)

【问题讨论】:

    标签: javascript node.js ejs


    【解决方案1】:

    听起来您在模板中使用了太多逻辑。您不想调用自定义函数,也不想使用那些 HTML 助手。

    您想要做的是正确定义绑定到您的模板的数据模型,并将您的业务逻辑与您的数据模型包装在一起。

    然后创建数据对象的实例并将其传递给 EJS。

    你的目标是 tagsoup 地狱。模板的目标仅仅是使用简单的循环和部分视图将 JSON 转换为 HTML。

    【讨论】:

    • 谢谢你,我现在是方向:)
    【解决方案2】:

    老问题,但以防其他人在这里绊倒......

    在 Express 3 中,您可以将助手添加到 app.locals。例如:

    app.locals.somevar = "hello world";
    
    app.locals.someHelper = function(name) {
      return ("hello " + name);
    }
    

    这些可以在您的视图中访问,如下所示:

    <%= somevar %>
    <%= someHelper('world') %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2018-04-08
      • 2016-04-23
      • 2014-12-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多