【问题标题】:pyjade and ternary conditional failing?pyjade和三元条件失败?
【发布时间】:2014-10-27 04:15:18
【问题描述】:

我是第一次使用 PyJade 来研究 Jade,以便我可以在 Flask(和 Jinja2)中使用它。到目前为止,一切似乎都在正常工作和编译,但我想知道这是否是 PyJade 翻译中的错误?

我无法将三元语法注入 Jade 而不出现错误。我已经尝试了各种建议here

div(class=(form.name.errors.length===0 ? 'form-group' : 'form-group has-error'))
div(class="#{form.name.errors.length===0 ? 'form-group' : 'form-group has-error'}")

我的错误总是

TemplateSyntaxError: unexpected '='

TemplateSyntaxError: unexpected char u'?' at 693

我在这里做错了吗?

这是一个简化的代码sn-p

doctype html
html(lang="en")
    head
        title= AwesomePage

    body

        form.form-horizontal(method="POST", action="/timeline")

            div(class="#{form.name.errors.length===0 ? 'form-group' : 'form-group has-error'}")
                div.col-sm-4
                    #{form.name(class="form-control")}

            div(class="col-sm-offset-2 col-sm-4")
                input(type="submit", class="btn btn-default", value="Add Vendor")

【问题讨论】:

    标签: pug pyjade


    【解决方案1】:

    由于pyjade是用python语法渲染的...你必须遵循python语法,所以这个表达式在js中会成功(form.name.errors.length===0 ? 'form-group' : 'form-group has-error'))但在python中不会成功,因为python中的三元运算是@ 987654322@.

    所以,解决办法是:

    div(class=('form-group' if not len(form.name.errors) else 'form-group has-error'))

    【讨论】:

    • 哇,太棒了。我没有意识到这个公式的 python 元素进入了模板。如此酷,如此伟大的项目。谢谢你,Syrus!
    猜你喜欢
    • 2021-03-22
    • 2022-08-10
    • 2023-03-31
    • 2011-05-06
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    相关资源
    最近更新 更多