2014-10-27 45 views
1

我第一次使用PyJade潛入翡翠,以便我可以在Flask(和Jinja2)中使用它。到目前爲止,一切似乎都在正常工作和編譯,但我想知道這是PyJade翻譯中的錯誤嗎?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 

我錯了在這裏做什麼?

這裏有一個簡單的代碼片斷

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") 

回答

3

由於pyjade與Python語法渲染......喲必須遵循Python語法,所以這種表達會成功在JS (form.name.errors.length===0 ? 'form-group' : 'form-group has-error'))但不是在蟒蛇,作爲三元python中的操作a if test else b

因此,解決方案是:

DIV(類=( '形式的基團' 如果不是LEN(form.name.errors)否則 '形組具有錯誤'))

+0

哇,太棒了。我沒有意識到這個公式的python元素使它進入模板。非常酷,這麼棒的項目。謝謝,Syrus! – Scott 2014-10-28 21:10:17