經典場景:我想顯示一個列表,但是當它爲空時,我想顯示「無數據」。vue.js確定空對象的正確方法
事實上,做一些我認爲很簡單的事情有點複雜,這讓我覺得我可能做錯了。
這是我目前的解決方案。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/vue/1.0.16/vue.js"></script>
<div id="element">
<div v-if="empty">No item in inventory</div>
<div v-for="(index, item) in inventory">
{{item.key}}<button onclick="remove('{{index}}')">remove</button>
</div>
</div>
<script type="text/javascript">
"use strict";
var vm;
$(function() {
vm = new Vue({
el: '#element',
data: {
inventory: {"id1" : {"key" : "val1"}, "id2" : {"key" : "val2"}},
empty: false
},
watch: {
inventory: function() {
vm.empty = $.isEmptyObject(vm.inventory);
}
}
});
});
function remove(key) {
Vue.delete(vm.inventory, key);
}
</script>
難道還有比這更好的解決辦法?
這是行不通的。庫存不是數組,它是一個對象,而對象沒有「.length」屬性。 –
@Finch_Powers我錯過了,我已經相應地更新了答案。 – Saurabh
我試過