EJS条件语句改变CSS

shi*_*ana 5 css ejs node.js

我在 EJS 中有循环,我想根据我的数据设置 css:

<% dummies.forEach(function(dummy) { %>
   <div class="panel panel-???">
   </div>
<% }) %>
Run Code Online (Sandbox Code Playgroud)

我的数据:

var dummies = [{ 
    type: "funny",
    sure: "Yes" // this should generate panel-success
}, { 
    type: "funny", // this should generate panel-a
    sure: "No"
}, { 
    type: "happy", // this should generate panel-b
    sure: "No",
}];
Run Code Online (Sandbox Code Playgroud)

因此,每当sure属性为 时Yes,它就会生成panel-success. 否则,它会根据type属性生成 css。

请帮忙。

Krz*_*sik 7

首先创建这样的对象:

<%
let cssClass = {
    funny: {
        Yes: "success",
        No: "a"
    },
    happy: {
        No: "b"
    }
} 
%>
Run Code Online (Sandbox Code Playgroud)

那么你应该只在模板中输出值:

<% dummies.forEach(function(dummy) { %>
   <div class="panel panel-<%= cssClass[dummy.type][dummy.sure] %>">
   </div>
<% }) %>
Run Code Online (Sandbox Code Playgroud)