Express Jade:如何基于变量值扩展基本模板

Express Jade:如何基于变量值扩展基本模板,express,pug,multiple-inheritance,template-engine,extends,Express,Pug,Multiple Inheritance,Template Engine,Extends,我有两个名为ios.jade和android.jade的主模板,以及多个子模板,它们应该根据变量的值扩展ios.jade或android.jade。不幸的是,我还没有找到一个方法来做到这一点 我想到了下面这样的事情,但它不起作用: if (locals.os === "android") extends android else extends ios 有什么建议吗?我刚刚找到了一种方法,可以动态地决定在主模板中包含哪个子模板。让我们假设我的主模板保存为main.jade: 我的其他文

我有两个名为ios.jade和android.jade的主模板,以及多个子模板,它们应该根据变量的值扩展ios.jade或android.jade。不幸的是,我还没有找到一个方法来做到这一点

我想到了下面这样的事情,但它不起作用:

if (locals.os === "android")
  extends android
else
  extends ios

有什么建议吗?

我刚刚找到了一种方法,可以动态地决定在主模板中包含哪个子模板。让我们假设我的主模板保存为main.jade:

我的其他文件是android.jade:

…和ios.jade:

现在,只需在Node.js-Express服务器上呈现主模板,并看到神奇的效果。请记住,下面的代码并不完整,您需要先设置服务器:

app.get('/', function(req, res) {
  res.render('main', {locals:{os: 'android'}});
});

这允许给定布局基于变量呈现不同的子对象。模板继承已经可以做到这一点,而且更简单。
p android
p ios
app.get('/', function(req, res) {
  res.render('main', {locals:{os: 'android'}});
});