【问题标题】:pug nested content in input输入中的 pug 嵌套内容
【发布时间】:2017-11-09 17:09:45
【问题描述】:

您好,我正在尝试创建可以在 pug 中显示 bootstrap radio button 的嵌套 mixins

mixin input(textinput)
   label.btn.btn-secondary
      input(type="radio" name="options" id="option1" autocomplete="off")= textinput

mixin btn-toggle-group(textinput)
   .btn-group(data-toggle="button")

    +btn-toggle-group  
                    +input('coca')
                    +input('pepsi')
                    +input('orangina')
                    +input('lemonade')

但它给我的输入错误是一个自闭合元素,但它包含嵌套内容

【问题讨论】:

    标签: node.js pug


    【解决方案1】:

    错误是由于试图通过=textinput 设置为单选按钮的TextNode 子级,这显然必须失败。

    如果想要渲染 下一个兄弟 文本节点,可以使用 | 运算符(管道)和插值。但是也可以只使用另一个 html 元素,例如span。示例代码提供了这两种变体。

    应该记住,不具有值的单选按钮(尤其是在单选按钮组中)几乎没有用处。将textinput 分配给单选按钮的value 属性也可能很有用。

    还应避免将idclass 属性直接传递到标签,而应将每个属性附加# 用于id 或. 获取类名。

    最后,如果想要将所有标记的无线电控件附加到 btn-group 分类 div 元素,则需要通过仔细缩进的 block 关键字来标记它。

    mixin input(textinput)
        label.btn.btn-secondary
            input#option1(type='radio' name='options' autocomplete='off' value=textinput)
            // span.label= textinput
            // span= textinput
            | #{textinput}
    
    mixin btn-toggle-group(textinput)
        .btn-group(data-toggle='button')
            block
    
    + btn-toggle-group
        + input('coca')
        + input('pepsi')
        + input('orangina')
        + input('lemonade')
    

    上面提供的经过清理和测试的代码现在可以按预期工作。

    阅读pug documentationattributesinterpolationmixinsinheritance/templates/blocks、)也有帮助。

    【讨论】:

    • 我不明白“需要将文本输入分配给单选按钮的值属性”是什么意思。因为在文档中 pugjs.org/language/mixins.html#mixin-blocks 标题可以用作文章包装器的 TextNode 子项。为什么在我的情况下我必须添加 value=textinput
    • textinput 与您的示例一样 ("coca", "pepsi", ...) 显然带有单选按钮的价值.由于<input/> 是一个自闭合元素,您尝试使其成为每个单选按钮的下一个兄弟 文本节点的值确实失败了。因此= 不起作用,但| 起作用。这是错误的根源。但我不仅修复了您所有的其他语法错误,还提示您将textinput 的值也分配给每个单选按钮的值。毕竟,单选按钮没有值几乎是没有用的,尤其是在单选组中。
    • 参考OP的评论... 因为在docs ...title可以用作TextNode子 ...可以看到一个mixin作为渲染特定的功能。一个人可以随意命名 mixin 的参数。每个参数都携带数据。为了将这些数据应用/呈现到正确的上下文中,必须了解例如的正确用法。插值/转义和/或运算符,如 =|
    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2015-01-24
    相关资源
    最近更新 更多