【问题标题】:How to define and call a function in ejs file using <% ... %> tags如何使用 <% ... %> 标签在 ejs 文件中定义和调用函数
【发布时间】:2019-07-09 21:06:36
【问题描述】:

我的 ejs 代码:

出现错误未捕获的 ReferenceError: nextQuess 未在 HTMLButtonElement.onclick 中定义

                    <div>
                      <ol>
                        <% var setVar=0; var rowNo=0; %>
                        <% function nextQuess() { %>
                          <% console.log("inside nextQuess function"); %>

                            <%  } %>
                        </ol>
                    </div>
                <div>
                 <button onClick="nextQuess()" id="next" >Click me!</button>
                </div>

这里有什么问题。谢谢。

【问题讨论】:

  • 为什么不在脚本标签中定义函数?我真的不认为你可以使用 ejs 标签创建函数,它们是为了控制你管理视图的方式而创建的,它们有简单的逻辑,比如条件或循环 ...
  • 我需要访问我通过渲染函数发送到我的 ejs 文件的 json 数组。如果我在脚本标签中定义函数,那么我将无法访问它。另外,如果我们不得不使用脚本标签,那么使用 EJS 的全部目的就没有了。
  • 是的,你会:stackoverflow.com/questions/28603658/…,正如我所说的......通常模板引擎没有像完整语言那样复杂的逻辑......他们只有控制流。 ejs 不是框架
  • Thanx mJehanno,我明白你的意思了。
  • mJehanno,您共享的链接中的示例是,在 EJS 标记中为 var 分配了一个整数值,并且在脚本标记中使用了该变量,效果很好。但是当涉及到字符串值时,它就不起作用了。例如; EJS :- JS:

标签: node.js express ejs


【解决方案1】:

您是否尝试将所有内容都放在同一个&lt;% %&gt; 标记中?

类似这样的:

<div>
                      <ol>
                        <% var setVar=0; var rowNo=0;
                         function nextQuess() {
                           console.log("inside nextQuess function");
                              } %>
                        </ol>
                    </div>
                <div>
                 <button onClick="nextQuess()" id="next" >Click me!</button>
                </div>

我总是这样使用它,它对我有用。

希望这会有所帮助。

【讨论】:

  • 嗨费尔南多。首先感谢您的时间。但这对我不起作用。仍然给出相同的错误 - 未捕获的引用错误
【解决方案2】:

试试这个...

<div>
  <ol>
    <% var setVar=0; var rowNo=0; %>
     <% function nextQuess() { %>
       console.log("inside nextQuess function");
       <%   } %>
    </ol>
</div>
<div>
  <button onClick="nextQuess()" id="next" >Click me!</button>
</div>

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2021-01-14
    • 2015-04-23
    • 2013-04-30
    相关资源
    最近更新 更多