2017-08-02 33 views
0

我要顯示一個按鈕,如果我的對象的數組有一些數據,所以basilcy在我的商店(vuex)我像這樣定義一個數組:檢查JSON數組是在店裏空vuex

state: { 
    document: [] 
}, 

我從其他組件追加數據到這個數組,我已經檢查過數據是否正確追加,這裏沒有問題。

所以我想顯示按鈕即可,如果有一些數據:

<div class="row margin-above"> 
    <div class="panel panel-primary" v-for="section in this.$store.getters.getDocument"> 
     <div class="panel-body quote" > 
      <p>{{section.key}}</p> 
     </div> 
    </div> 
    <div v-if="this.$store.getters.getDocument != '[]'"> 
     <button class="btn btn-success btn-block">Create Document</button> 
    </div> 
</div> 

有按鈕,我想隱藏與按鈕全部DIV如果條件滿足,但它不工作按鈕總是在那裏,有什麼幫助?

+0

爲什麼你使用'$此= store.getters.getDocument '[]''單引號。!?不是'文件'數組? – choasia

+0

我也沒有試過,結果相同 –

+0

如果你做'v-if =「document.length> 0」',那該怎麼辦? –

回答

2

檢查它的長度屬性。

<div v-if="this.$store.getters.getDocument.length != 0"> 
    <button class="btn btn-success btn-block">Create Document</button> 
</div> 

或者在沒有元素時將vuex變量賦值爲null。比這應該工作。

<div v-if="this.$store.getters.getDocument"> 
    <button class="btn btn-success btn-block">Create Document</button> 
</div> 
+0

工作,不知道我曾嘗試過這樣的事情,謝謝你的朋友:D –

1

在你的店沒有ü定義的getter「getDocument」,如果是在你的組件添加計算的屬性,更清潔,更可重複使用的,然後引用直接在模板商店干將:

computed : { 
    document: function() { 
     return this.$store.getters.getDocument; 
    } 
} 

模板:

<div v-if="document.length"> 
    <button class="btn btn-success btn-block">Create Document</button> 
</div>