【问题标题】:Assign content to multiple blocks inside a mixin which generates a nested HTML structure dynamically in Jade?将内容分配给在 Jade 中动态生成嵌套 HTML 结构的 mixin 内的多个块?
【发布时间】:2013-04-20 13:20:50
【问题描述】:

我想创建以下 HTML 结构

<div class="outerspace">
    <div class="inner1"><p>Inner1 content</p></div>
    <div class="inner2"><p>Inner2 content</p></div>
    <div class="inner3"><p>Inner3 content</p></div>
    (...)
</div>

而内部divs的数量可能会有所不同。

示例 1:


我可以创建两个 mixin - 一个 òuterspace 和一个 ìnner mixin,使用 blockkeyword 嵌套它们,并为每个内部 div 元素放置不同的内容:

mixin outerspace()
    div.outerspace
        block

mixin inner($number)
    div(class="inner" + $number)
        block

//- call the mixins
+outerspace()
    +inner(1)
        p Inner1 content
    +inner(2)
        p Inner3 content
    +inner(3)
        p Inner3 content
    ...

示例 2:


这个例子尝试对单个 mixin 做同样的事情:

mixin nested_structure($number)
    div.outerspace
        each item in $number
            div(class="inner" + item)
                block

//- call the mixin
+nested_structure([1, 2, 3])
    p Inner content

这会产生与上述相同的结构,但会为每个生成的块分配相同的内容:

<div class="outerspace">
    <div class="inner1"><p>Inner content</p></div>
    <div class="inner2"><p>Inner content</p></div>
    <div class="inner3"><p>Inner content</p></div>
</div>

问题:如何使用示例 2 生成所需的 HTML 结构,同时为每个内部 div 元素分配不同的内容?

【问题讨论】:

    标签: node.js code-generation pug mixins templating


    【解决方案1】:

    你不能把“p Inner content”这一行放在mixin里面吗?

    mixin nested_structure($number)
        div.outerspace
            each item in $number
                div(class="inner" + item)
                    p Inner#{item} content 
    
    //- call the mixin
    +nested_structure([1, 2, 3])
    

    这将输出:

    <div class="outerspace">
        <div class="inner1"><p>Inner1 content</p></div>
        <div class="inner2"><p>Inner2 content</p></div>
        <div class="inner3"><p>Inner3 content</p></div>
    </div>
    

    【讨论】:

    • 并非如此。那只是一个人为的例子。可能不止一个 &lt;p&gt; 元素,每个 &lt;div&gt; 元素的内容也可能不同。
    • 您想如何创建动态内容?如果你想用mixin创建它,你不能从nested_structure-mixin中调用它吗?
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2014-12-11
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多