我第一次使用PyJade进入Jade,以便可以在Flask(和Jinja2)中使用它。到目前为止,尽管我想知道这是否是PyJade翻译中的错误,但一切似乎都可以正常工作和编译。
我无法在没有错误的情况下将三元语法注入Jade。我已经尝试过这里建议的所有方法。
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
我在这里做错什么了吗?
这是一个简化的代码片段
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")
由于pyjade是使用python语法呈现的……您必须遵循python语法,因此此表达式将在js中成功,(form.name.errors.length===0 ? 'form-group' : 'form-group has-error'))
但在python中不会成功,因为python中的三元操作为a if test else b
。
因此,解决方案是:
div(class =('form-group'如果不是len(form.name.errors)否则'form-group has-error'))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句