哈巴狗:有条件的父div,不复制子对象

问题描述

我们有这样的东西:

 .child
   a.child-2
     img(src)

如果我想为此元素添加包装,我会这样做:

if something === true
  .parent
     .child
       a.child-2
         img(src)
else
     .child
       a.child-2
         img(src)

如果有很多孩子,我们会遇到加倍和可读性差的问题 我该如何为包装元素单独编写条件,而无需做出else语句并复制其中的每个子元素?

解决方法

这是Pug mixin with a mixin block的绝佳用例:

mixin conditionalWrapper(arg)
  if arg
    .parent
       block
  else
    block

block声明将呈现mixin的所有子级。可以这样使用。如果参数为true,则内容将在.parent包装器中呈现。如果为假,将在不使用包装的情况下进行渲染。

- let something = true

+conditionalWrapper(something)
  .child
    a.child-2
     img(src)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...