首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不在客户端呈现EJS代码的ejs

不在客户端呈现EJS代码的ejs
EN

Stack Overflow用户
提问于 2017-10-21 23:43:09
回答 1查看 2.2K关注 0票数 0

我尝试将从home.js发送到home.ejs的EJS代码呈现为字符串,但没有工作。我现在正在尝试,但似乎什么都没有用。我的代码是:

home.js

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

home.ejs

代码语言:javascript
复制
 var template = new EJS({text: <%- JSON.stringify(templates.onScroll) %>}).update('#mainContainer', {postArr: postArr});

编辑:

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

代码语言:javascript
复制
$(window).scroll(function () {
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
//get post data and append post
}});

当用户到达页面底部时,我希望将ejs代码添加到页面中。基本上,我想在ejs和js之间进行交流。

EN

回答 1

Stack Overflow用户

发布于 2017-10-23 12:17:32

根据http://ejs.co的示例,您首先需要在页面中包含ejs的浏览器构建:

代码语言:javascript
复制
<script src="ejs.js"></script>

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

代码语言:javascript
复制
var html = ejs.render('your template here', {postArr: postArr});

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

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

当您使用EJS生成EJS时,所有这些都变得更加难以理解,但是home.ejs中的相关代码应该如下所示:

代码语言:javascript
复制
var html = ejs.render(<%- JSON.stringify(templates.onScroll) %>, {postArr: postArr});

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

这假设onScroll模板不include任何其他模板。您还没有指定home.ejs是用于生成HTML还是JavaScript,因此不清楚其他转义考虑可能适用什么,但可能不会出现问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46869180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档