我在侧边栏中有几个小部件。 我不希望这些小部件中的某些小部件显示在我的某些页面上。
我不知道如何写它比这更简单?我有许多排除,所以这样写它将是一本充满线条的书籍。 我只想编写简单的“在此页面上只包含这个或这些小部件”(而不是“在此页面上排除这个和这些小部件”)。
<%if( !(page.layout=="alpha" && (name=="w1" || name=="w2" || name=="links" || name=="w3") ) &&
!(page.layout=="beta" && (name=="w400" || name=="w500" || name=="w600") ) ){
%>
所以问题是如何简化页面“alpha”仅显示widget895?
答案 0 :(得分:0)
我假设您在小部件上有某种循环,name
对应于该循环中的当前小部件名称。
<%
var pageWidgets = {
alpha: ['widget895'],
beta: ['widget900', 'widget123']
};
var allowedWidgets = pageWidgets[page.layout];
// Loop over the widgets and grab the name, I assume
// you're already doing something similar.
widgets.forEach(function(widget) {
var name = widget.name;
// This is the equivalent of the 'if' in your
// original code. Note that I've allowed all
// widgets by default.
if (!allowedWidgets || allowedWidgets.includes(name)) {
%>
...widget rendering here...
<%
}
});
%>