2014-11-09 40 views
1

Jade的新手。簡單的問題歸結爲決定一個變量是否是一個數組。翡翠中的IsArray?循環收集與顯示爲字符串

我的JSON:

{ 
    "firstName" : 「tom", 
    「pets" : 「mouse" 
} 
{ 
    "firstName" : 「phil", 
    「pets" : [「cat", 「dog", 「horse"] 
} 

所以有時寵物是一個數組,有時沒有。當我嘗試這在我的模板:

ul 
    each user in requestList 
     li= user.firstName 
      ul 
       each p in pets 
        li= p 

它循環通過逗號DELIM陣列如預期,但是當它到達一個寵物它遍歷數組中的字符:

tom 
    m 
    o 
    u 
    s 
    e 
phil 
    cat 
    dog 
    horse 

我需要內部每個循環來'決定'寵物是否是一個數組。 isArray不起作用; isArray()拋出一個錯誤。我能嗅探一個逗號,但似乎很笨重考慮如何玉是光滑的(到目前爲止)

ul 
    each user in requestList 
     li= user.firstName 
      ul 
       if user.pets.isArray 
        each p in pets 
         li= p 
       else 
        li= user.pets 

這可能是一般JS的問題,來想起來了,但我正在尋找具體爲Jade語法。

回答

1

我的內聯JavaScript的解決方案,對於它的價值:

  - if(user.pets.constructor == Array) 

它工作正常,但我會等待和觀望的東西翡翠。

0

嘗試用長

ul 
     li= user.firstName 
      ul 
       if user.pets > 1 
        each pet in pets 
         li= pet 
        else 
         li= user.pets 
+0

這就是我會想通過,沒有運氣。還嘗試了長度屬性。它仍然將字符串分割成一個char數組並列出每個字母。下面的內嵌檢查工作。不能說是否推薦。 – LesterDove 2014-11-09 14:35:11