Node.js ejs模板的客户端和服务器端呈现
我一直希望学习NodeJS能够在服务器端和客户端运行相同的代码。 我将NodeJS与Express和EJS一起使用。 所以我有一个.ejs页面,包含很多HTML、JS、CSS和一小部分模板。为了公正起见,就这样吧: _列表-->some.ejsNode.js ejs模板的客户端和服务器端呈现,node.js,ejs,server-side-rendering,client-side-templating,Node.js,Ejs,Server Side Rendering,Client Side Templating,我一直希望学习NodeJS能够在服务器端和客户端运行相同的代码。 我将NodeJS与Express和EJS一起使用。 所以我有一个.ejs页面,包含很多HTML、JS、CSS和一小部分模板。为了公正起见,就这样吧: _列表-->some.ejs <ul> <% for(i=0;i>the_list.length;i++) { %> <li>the_list[i]</li> <% } %> </ul>
<ul>
<% for(i=0;i>the_list.length;i++) { %>
<li>the_list[i]</li>
<% } %>
</ul>
列表长度;i++{%>
- (一)
在服务器上渲染之后,我们有了一个完美的列表
所以。
现在我想在客户端重新发布它。我提出了一些ajax请求,现在我在列表中有了新的项目。正确的方法是什么?根据ejs
var模板=新的EJS({
正文:`
- (一)
`
});
var html=template.render({the_list:data});
document.getElementById('list-wrapper')。innerHTML=html;
这应该是可行的,看起来您的问题是关系运算符“>”,因为它永远不会输出某些内容
<ul>
<% for(var i=0; i<the_list.length; i++) { %>
<li>
<a>
<%= the_list[i]%>
</a>
</li>
<% } %>
</ul>
让博客帖子=[
{
标题:“特权是真的!”,
正文:“…”,
作者:《亚伦·拉纳》,
发布日期:新日期('2016-03-19'),
创建日期:新日期('2016-03-19')
},
{
标题:"继续发展",,
正文:“…”,
作者:《亚伦·拉纳》,
发布日期:新日期('2016-03-18'),
创建日期:新日期('2016-03-18')
},
{
标题:“欢迎来到Perk!”,
正文:“…”,
作者:《亚伦·拉纳》,
发布日期:新日期('2016-03-17'),
创建日期:新日期('2016-03-17')
}
];
var html=ejs.render(`
`,{posts:blogPosts});
//香草JS:
document.getElementById('output')。innerHTML=html;
从最新版本下载ejs.js或ejs.min.js我有一个类似的问题,但我想使用一个部分文件,而不是像上面那样放置我的HTML。你知道这是否可行吗?谢谢
<ul>
<% for(var i=0; i<the_list.length; i++) { %>
<li>
<a>
<%= the_list[i]%>
</a>
</li>
<% } %>
</ul>
<div id="output"></div>
<script src="/assets/js/ejs.js"></script>
<script>
let blogPosts = [
{
title: 'Perk is for real!',
body: '...',
author: 'Aaron Larner',
publishedAt: new Date('2016-03-19'),
createdAt: new Date('2016-03-19')
},
{
title: 'Development continues...',
body: '...',
author: 'Aaron Larner',
publishedAt: new Date('2016-03-18'),
createdAt: new Date('2016-03-18')
},
{
title: 'Welcome to Perk!',
body: '...',
author: 'Aaron Larner',
publishedAt: new Date('2016-03-17'),
createdAt: new Date('2016-03-17')
}
];
var html = ejs.render(`<% for(let i = 0; i < posts.length; i++) { %>
<article>
<h2><%= posts[i].title %></h1>
<p><%= posts[i].body %></p>
</article>
<% } %>`, {posts: blogPosts});
// Vanilla JS:
document.getElementById('output').innerHTML = html;
</script>