为什么我这样写,只能显示“object promise”,无法显示函数返回值?<div v-for="(item, index) in images" :style="getImageStyle(index)"> <img src="@/components/yunbu/circle1.svg" style="width: 250px; height: 250px"> <span class="txt"> {{ yun }}</span> <span class="yb">{{yb[index]}}</span> <span class="yj">{{getYunjiao(index)}}</span> </div>
时间: 2024-01-03 21:38:19 浏览: 103
浅谈Vue2.0中v-for迭代语法的变化(key、index)
在Vue模板中,使用`{{ ... }}`来显示数据绑定的内容。在这种情况下,你将`getYunjiao(index)`包含在了`{{ ... }}`中,这将导致它将函数返回值作为字符串进行显示,而不是调用函数并显示返回值。
解决这个问题的一个方法是,在Vue的`data`属性中定义一个新的变量,例如`randomYunjiao`,将函数返回值赋给它,然后在模板中直接使用这个变量来显示。
以下是示例代码:
```javascript
<template>
<div>
<!-- 其他组件内容 -->
<div v-for="(item, index) in images" :style="getImageStyle(index)">
<img src="@/components/yunbu/circle1.svg" style="width: 250px; height: 250px">
<span class="txt">{{ yun }}</span>
<span class="yb">{{ yb[index] }}</span>
<span class="yj">{{ randomYunjiao[index] }}</span>
</div>
</div>
</template>
<script>
export default {
data() {
return {
// 其他 data 属性
randomYunjiao: []
};
},
methods: {
async getYunjiao(Index) {
// 函数内容...
}
}
};
</script>
```
在`getYunjiao`函数中,将返回值赋给`randomYunjiao[index]`,然后在模板中直接使用`randomYunjiao[index]`来显示函数返回值。这样就能正确显示函数返回值了。
阅读全文