首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue (2.6.14) -v-用于不使用api导入显示数据(axios)

Vue (2.6.14) -v-用于不使用api导入显示数据(axios)
EN

Stack Overflow用户
提问于 2021-09-01 14:58:24
回答 1查看 203关注 0票数 1

,思想,,我正试图构建一个显示,其中的活动是用一些过滤器显示的。数据来自CMS生成的API。这些过滤器没有显示在代码中,因为它不相关。

问题当手动定义数据属性中的“项”时,v-for列表呈现显示得很好,并给出了所需的输出。当从api中提取数据并将它们分配给项目时,v-for没有显示任何内容。

我的想法,,我认为v-for是在api请求完成之前运行的,将数据放入'items‘值中。目前,我使用'created‘属性来激发函数,之前也使用了'Mounted()’,这也不起作用。

版本 Vue 2.6.14,Axios 0.21.1

Vue码

代码语言:javascript
运行
复制
var vue = new Vue({
    el: '#app',
    data: {
        items: null,
    },
    created: function () {
        this.fetchData()
    },
    methods: {
        fetchData: function() {
        axios
            .get('/api/activities.json')
            .then(response => (this.items = response.data.data))
        }
    }
})

模板

代码语言:javascript
运行
复制
<div id="app">
    <ul class="example">
        <li v-for="item in items">
            {{ item }}
        </li>
    </ul>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 16:17:40

你的代码似乎运行得很好。如下所示,我刚刚用一个虚拟的REST api调用替换了您的api调用,它运行得很好。请将数据从response.data.data中释放出来,看看是否真的收到了一个数组。

代码语言:javascript
运行
复制
Vue.config.productionTip = false
Vue.config.devtools = false


let vue = new Vue({
    el: '#app',
    data: {
        items: null,
    },
    created() {
        this.fetchData()
    },
    methods: {
        fetchData: function() {
        axios.get('https://jsonplaceholder.typicode.com/users')
        .then(response => {  this.items = response.data })}
    }
})
代码语言:javascript
运行
复制
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <div id="app">
    <ul class="example">
      <li v-for="item in items">
        {{ item.id }} - {{ item.name }}
      </li>
    </ul>
  </div>
</div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69016221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档