Node.jsの電子メールにHTMLテンプレート内でlodashを使用しようとしています。私はいくつかのオブジェクトを持つ1つの配列を持っています。私は各オブジェクトを繰り返し、すべての繰り返し値をリストしたいと思います。下記のコードを使用すると、値が未定義であることを示すエラーが表示されます(例:ReferenceError: firstName is not defined
)。 HTMLテンプレートは別のファイルにあります。Lodashで配列内のオブジェクトを反復処理する方法
私が間違っていることについて考えてみましょうか?
Javascriptを:
var template = fs.readFileSync('server/views/email-template.html').toString();
var htmlAll = _.template(template)(orderInfo);
HTML:
<% _.forEach(function(firstName) { %><%- firstName %></td><% }); %> <% _.forEach(function(lastName) { %><%- lastName %></td><% }); %>
<% _.forEach(function(address) { %><%- address %></td><% });%>
<% _.forEach(function(city) { %><%- city %><% }); %>, <% _.forEach(function(state.code) { %><%- state.code %><% });
%> <% _.forEach(function(zip) { %><%- zip %><% }); %>
<% _.forEach(function(item) { %><td><%- item %></td><% }); %>
<% _.forEach(function(cost) { %><td><%- cost %></td><% }); %>
は、アレイ:
[
{
"firstName": "John",
"lastName": "Doe",
"address": "123 Broadway",
"city": "New York",
"state": {
"code": "NY",
"state": "New York"
},
"zip": "10001",
},
{
"color": "White",
"size": "M",
"item": "T-Shirt",
"cost": 19.99,
},
{
"color": "Blue",
"size": "L",
"item": "T-Shirt",
"cost": 19.99,
}
]
これらのテンプレートはEJSですか?もしそうなら、それに応じてあなたの質問にタグを付けてください。 – mik01aj
@ m01いいえ、それはちょうどアンダースコアです.jsテンプレート – Magus