2012-07-25 48 views
26

我想要實現與小鬍子以下邏輯:小鬍子 - 如何檢測數組不是空的?

{{#if users.length > 0}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/if}} 

// eg. data = { users: ['Tom', 'Jerry'] } 

我應該修改users結構,以滿足需要?例如:

{{#hasUsers}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/hasUsers}} 

// eg. data = { hasUsers: true, users: ['Tom', 'Jerry'] } 
+2

是的,我相信你將不得不修改數據,就像你用'做hasUsers'。另一種選擇是使用更強大的[Handlebars](http://handlebarsjs.com/),它可以在主頁上處理這種確切的情況。 – maxbeatty 2012-07-25 18:26:37

回答

44

對不起,這可能爲時已晚。但我也有類似的要求,找到了一個更好的方式來做到這一點:

{{#users.length}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/users.length}} 
{{^users.length}} 
    <p>No Users</p> 
{{/users.length}} 

工作樣本這裏:http://jsfiddle.net/eSvdb/

+4

請注意,這不是一個標準的小鬍子功能。它取決於小鬍子的實施情況。 – corgrath 2016-03-04 09:06:05

+0

永遠不會太遲:) – jClark 2017-11-30 16:31:45

+0

我可以證實,正如@corgrath所說,這是依賴於實現的:它不適用於samskivert的Java Mustache庫。 – penguin86 2018-01-11 16:51:52

17

使用{{#users.length}}如果你想內聲明重複的偉大工程數組的每一個元素,但如果你只想要一個語句只運行一次,你可以使用:

{{#users.0}} 
... 
{{/users.0}} 
{{^users.0}} 
... 
{{/users.0}} 
+5

這種方式也適用於PHP,因爲數組沒有長度屬性。 – JacopKane 2015-04-02 22:29:19

+1

對於PHP – Michael 2016-09-21 14:46:28

+1

肯定適用於鬍子,這是正確的答案 – stewart715 2016-09-23 13:32:12