【问题标题】:EJS not rendering ejs code on client sideEJS 不在客户端呈现 ejs 代码
【发布时间】:2017-10-21 23:43:09
【问题描述】:

我尝试将我从 home.js 发送到 home.ejs 的 EJS 代码呈现为字符串,但它不起作用。我现在正在尝试,但似乎没有任何效果。我的代码是:

home.js

var templates = {};
templates.onScroll = fs.readFileSync('views/partials/onScrollAppendPost.ejs', 'utf-8');
res.render("users/home", {templates: templates});`

home.ejs

 var template = new EJS({text: <%- JSON.stringify(templates.onScroll) %>}).update('#mainContainer', {postArr: postArr});

编辑:

我想要做的是检测用户何时到达页面底部。使用此代码:

$(window).scroll(function () {
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
//get post data and append post
}});

当用户到达页面底部时,我想将 ejs 代码附加到页面。基本上我想在ejs和js之间进行通信。

【问题讨论】:

  • 说实话,我从来没有见过这样的代码,但也许我只是无知。你是怎么学的?你能提供一些使用类似代码的教程或示例吗?
  • 这些模板需要自己在服务器上编译,浏览器无法编译ejs文件AFAIK。你需要使用模板引擎
  • 您能否详细说明“它不起作用”?您是否尝试在服务器和客户端上运行模板?这应该是可能的,虽然有点奇怪。在客户端上使用 EJS 的语法在“浏览器支持”部分中的 ejs.co 中进行了说明。
  • 编辑问题 有没有浏览器ejs的例子?我无法从 ejs.co @skirtle 中理解它

标签: javascript node.js ejs


【解决方案1】:

基于http://ejs.co 的示例,您首先需要在页面中包含一个 ejs 的浏览器版本:

<script src="ejs.js"></script>

然后你可以像这样使用 EJS 客户端:

var html = ejs.render('your template here', {postArr: postArr});

$('#mainContainer').html(html);

这里我假设 postArr 设置得当,可能是 AJAX 请求的结果。

当您使用 EJS 生成 EJS 时,这一切变得更加难以理解,但您的 home.ejs 中的相关代码将是这样的:

var html = ejs.render(<%- JSON.stringify(templates.onScroll) %>, {postArr: postArr});

$('#mainContainer').html(html);

这假定onScroll 模板没有include 任何其他模板。您尚未指定 home.ejs 是用于生成 HTML 还是 JavaScript,因此尚不清楚可能适用哪些其他转义注意事项,但这可能不会成为问题。

【讨论】:

  • 抱歉回答迟了,现在正在处理考试。这是我在使用 \r\n \r\n &lt;% if(postArr[i].bestAnswer != null){ %&gt;\r\n \r\n &lt;% }else { %&gt;\r\n \r\n &lt;% } %&gt;\r\n \r\n &lt;% }else if(postArr[i].rateStatus == false){ %&gt;\r\n \" data-status=\"downvoted\"\r\n style=\"display: flex; flex-direction: column; margin: -160px 0 0 0; position: absolute;\"&gt;\r\n \r\n &lt;%= postArr[i].rateCount %&gt; @skirtle 时在页面上看到的部分内容
  • 我刚刚意识到它在&lt;%- JSON.stringify(templates.onScroll) %&gt; 之后将所有内容都字符串化并将其输出到页面:/
猜你喜欢
  • 2017-02-22
  • 2023-03-18
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多