使vim突出显示ejs(http://embeddedjs.com/)文件的最佳方法是什么?是否可以为文件设置html高亮显示,并在<%%>内突出显示它的部分?感谢您的帮助!
我在下面的EJS中有代码,
<script>
var row =<%-JSON.stringify(data)%>
console.log(row);
</script>
<% for(var i=0; i<JSON.stringify(data).length; i++) {%>
<tr>
<td>
<%= JSON.stringify(data)[i].id%>
</td>
</tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)
行的输出是正确的,一个包含3个对象的数组,每个对象都有属性id,名称等.我可以操作行来在JS中弹出表.但是,我想知道是否有办法让它以上述方式完成?
当我运行上面的代码时,JSON.stringify(data).length不是3,而是整个字符串的长度.
另一个问题是当我尝试添加时
<%alert('t'); %>或<%window.alert('t'); %>,它给了我'未定义'的错误......
帮助赞赏.
关心锤子
我完全迷失了; 我正在使用NodeJS来获取JSON,我需要将变量传递给我的页面并让JavaScript使用数据.
app.get('/test', function(req, res) {
res.render('testPage', {
myVar: 'My Data'
});
Run Code Online (Sandbox Code Playgroud)
这是我的Express代码(非常简单,用于测试目的); 现在使用EJS我想收集这些我知道要在页面上呈现的数据
<%= myVar %>
Run Code Online (Sandbox Code Playgroud)
但是我需要能够在JavaScript中收集这些数据(如果可能的话,在.js文件中),但现在只是在Alert框中显示变量我试过了
在玉中它就像alert('!{myVar}')或!{JSON.stringify(myVar)}.我可以在EJS中做类似的事吗?我不需要任何字段,<input type=hidden>并在javascript中获取字段的值.如果有人可以帮助我们非常感激
要在views/custom.ejs中使用MomentJS,正确的方法是什么(如果有的话)?
服务器端
路线/索引等我们可以很容易地使用require('moment');等,它工作正常.
服务器端(EJS视图)
views/custome.ejs,类似的东西<% var m = require('moment'); %>不起作用
我使用ExpressJS和EJS作为模板引擎.
我正在研究NodeJS应用程序(这是一款游戏).在这种情况下,我设置了一些代码,以便当一个人访问索引并选择一个房间时,他会被重定向到适当的房间.
现在它正在这样做,使用Express v2.5.8:
server.get("/room/:name/:roomId, function (req, res) {
game = ~databaseLookup~
res.render("board", { gameState : game.gameState });
}
Run Code Online (Sandbox Code Playgroud)
在board.ejs中,我可以使用以下代码访问gameState方式:
<% if (gameState) { %>
<h2>I have a game state!</h2>
<% } %>
Run Code Online (Sandbox Code Playgroud)
有没有办法将它导入我的JavaScript逻辑?我希望能够做类似var gs = ~import ejs gameState~的事情
然后能够用它做任何我想做的事情 - 访问它的变量,将其打印到控制台进行验证.最终我想用这个gameState做的是正确地显示板子,为此我需要做一些事情,比如访问片段的位置,然后在屏幕上正确显示它们.
谢谢!
我想在bloglist [i] .Text字段中转义html.如何用EJS做到这一点?
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<% for(var i=0; i < bloglist.length; i++) { %>
<h3> <%= bloglist[i].Title %></h3>
<div>
<%= bloglist[i].Text %>
</div>
<% } %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在尝试按照说明/sf/answers/1304367921/,但我仍然无法加载我的styles.css.
来自app.js
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
在我的.ejs中,我尝试过这两行
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<link rel="stylesheet" type="text/css" href="/public/css/style.css" />
Run Code Online (Sandbox Code Playgroud)
既没有加载CSS.我已经进入开发人员的控制台注意到类型设置为'text/html'而不是'text/css'.
我的路径看起来像
.
./app.js
./public
/css
/style.css
Run Code Online (Sandbox Code Playgroud) 作为EJS的真正初学者,我在html页面中有两个图表,所以我想使用我的部分两次:
<% include partials/spider-chart.ejs %>
Run Code Online (Sandbox Code Playgroud)
但我需要在ejs中传递一些参数来区分图形.
什么是最好的方法?
在ejs模板中检查未定义属性的最佳方法是什么?
(我正在使用TJ Holowaychuk 的node.js包)
例:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
Run Code Online (Sandbox Code Playgroud)
我希望这会渲染"foo undefined".它确实会抛出一个未定义的错误.
我知道这不应该是一个问题,因为这是测试中的预期行为.有一种简单的方法可以避免这种情况吗?
我找到的唯一解决方案是使用该hasOwnProperty方法.
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
Run Code Online (Sandbox Code Playgroud)
这不会引发任何错误.
有没有更好的方法来保持模板清洁?或者为什么会抛出这个错误?
好吧,我有一个主要是静态的主页,但我希望有部分视图,用于导航,页脚等.我正在使用ejs,它看起来像这样:
我的控制器:home.js
// Dependencies
var express = require('express');
module.exports = {
get: function(req, res) {
app.set('view engine', 'ejs');
var model = {
layout:'home',
};
res.render('home');
}
};
Run Code Online (Sandbox Code Playgroud)
我的views目录有nav,home和footer all .ejs
然后剥离文本的实际html文件看起来如下.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" >
<title>Tom Jones</title>
<!-- CSS -->
<link rel="stylesheet" href="/css/home.css" type="text/css" media="screen" >
</head>
<body>
<%- partial('nav') %>
<!--content part -->
<div id="showcontainer">
<section>
</section>
</div>
<div id="maincontainer">
<section>
</section>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题当我测试它时,我遇到错误部分未定义.我试过要求ejs但没有成功.