簡體   English   中英

如何在v-for中訪問對象屬性名稱

[英]how to access object property name in v-for

我是vuejs的新手。 我開始玩v2。 我的實例數據屬性中有一個帶有對象的簡單數組:

items: [{"theProprtyName": "thePropertyValue"}]

我做簡單的v-for:

<v-list>
    <v-list-item v-for="item in items">
        <span v-for="(key, value) in map">
            {{key}}--{{value}}
        </span>
    </v-list-item>
</v-list>

呈現:

theProprtyName--thePropertyValue

有沒有更優雅的創建方式來達到最終結果?

提前致謝

您可以在v-for中獲取引用名稱而不是索引的屬性名稱:

<div v-for="(item, name) in items" :key="name"> {{name}}</div>

我認為最直接的解決方案是利用computed屬性:

 const app = new Vue({ el: '#app', data: { list: [ { foo: 'value1', bar: 'value2', baz: 'value3' }, { foo: 'value4', bar: 'value5', baz: 'value6' } ] }, computed: { objList() { return this.list.map((item) => Object.keys(item)) }, keyValuePair() { return this.list.map((item) => { return Object.keys(item).reduce((acc, curr) => { acc.push(`${curr} - ${item[curr]}`) return acc }, []) }) } } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.js"></script> <div id="app"> <div> <h3>Loop as normal</h3> <div v-for="item in list">{{item}}</div> <div> <div> <h3>Loop as normal</h3> <div v-for="item in objList">{{item}}</div> <div> <div> <h3>Key-Value Pair</h3> <div v-for="(item, idx) in keyValuePair"> <div>{{item}}</div> </div> <div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM