3

下面混入

mixin form(title, action)
    legend title
    form.form-horizontal(method='post', action=action)
        label Name:
        input(type='text',name=Name,id=Name)

呈现为

<legend>title</legend>
<form method="post" action="save" class="form-horizontal">
  <label>Name:</label>
  <input type="text"/>
</form>

现在,我将标签和字段提取到另一个 mixin

mixin form(title, action)
    legend title
    form.form-horizontal(method='post', action=action)

mixin field(name)
    label #{name}:
    input(type='text',name=name,id=name)

并用作

mixin form("xxxx", "save")
    mixin field('Name')

这给出了错误

>> Line 1209: Unexpected string
Warning: Jade failed to compile test.jade. Use --force to continue.

是否可以嵌套 mixin 以及如何使其呈现为第一个输出。

谢谢

4

2 回答 2

1

似乎应该可以。至少这里的人能够做到。

https://github.com/pugjs/pug/issues/1103

于 2013-08-14T14:36:46.393 回答
1
mixin field(name)
    label #{name}:
    input(type='text',name='#{name}',id='#{name}')

mixin forms(title, action, name)
    legend #{title}
    form.form-horizontal(method='post', action='#{action}')
    block
    +field(name)

测试电话

+forms( '*TheTitle*', '*TheAction*' , '*TheName*' )

渲染

<legend>TheTitle</legend>
<form method="post" action="TheAction" class="form-horizontal"></form>
<label>TheName:</label>
<input type="text" name="TheName" id="TheName"/>

您必须单独定义 mixin,然后在 'forms' mixin 的定义中调用 'field' mixin。

于 2014-05-21T15:40:32.057 回答