vue的data()中的值能否递归调用

2020-12-17 15:52发布

问题:

下面的details{}是从后台传过来的对象,能不能在不改变details{}的情况下,在html中循环输出details{}中的属性值和另外自己定义的title吗


<template>
    <div>
        <van-cell-group>
            <van-cell
                v-for="(item, index) in d_list"
                :key="index"
                :title='item.title'
                :value="item.value"/>
        </van-cell-group>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                details: {
                    c1: '内容一',
                    c2: '内容二',
                    c3: '内容三',
                },
                d_list: [
                    {
                        title: '标题一',
                        value: 'this.details.c1',
                    }, {
                        title: '标题二',
                        value: 'this.details.c2',
                    }, {
                        title: '标题三',
                        value: 'this.details.c3',
                    }
                ],
            }
        },
    }
</script>

理想的效果是:

标题一                  内容一
标题二                  内容二
标题三                  内容三

实际上的效果是:

标题一                  this.details.c1
标题二                  this.details.c2
标题三                  this.details.c3

回答1:

value: 'this.details.c1' 改称这种 value: 'c1'

可以这样赋值
:value="details[item.value]"