搜索

首页  >  问答  >  正文

在Vue.js中查找嵌套键的JSON对象的方法

<p>我正在尝试在我的VUEjs应用程序上显示来自Django API的用户列表中的用户。</p> <p>我的API中的用户列表数据:</p> <pre class="brush:php;toolbar:false;">{ "count": 1, "next": null, "previous": null, "results": [ { "url": "http://localhost:8000/v1/users/1/", "username": "admin", "email": "admin@example.com", "groups": [] } ] }</pre> <p>我的VUE代码:</p> <pre class="brush:php;toolbar:false;"><template> <div> <h1> Users </h1> <div v-for="results in APIData" :result="results" :key="results.username"> <h5>{{ result.username }}</h5> <p>{{ result.email }}</p> </div> </div> </template> <script> import { getAPI } from '../axios-api'; import { mapState } from 'vuex'; export default { name: 'Users', computed: mapState(['APIData']), created() { getAPI.get('/v1/users/', { headers: { Authorization: 'Bearer ' + this.$store.state.accessToken } }) .then(response => { this.$store.state.APIData = response.data }) .catch(error => { console.log(error) }) } } </script></pre> <p>由于某种原因,尽管我可以看到我的API请求成功并且在网络选项卡中可以看到数据,但数据没有显示在网页上。显示用户的方式正确吗?还是我漏掉了什么?</p> <p>我对VUEjs还不熟悉,有人可以帮忙吗?</p>
P粉872182023P粉872182023459 天前480

全部回复(2)我来回复

  • P粉145543872

    P粉1455438722023-08-31 00:57:07

    问题出在v-for上,你可以尝试使用:v-for="results in APIData.results",因为"results"不是一个访问器,而是你给数组中的每个值分配的名称,而APIData不是一个数组。

    回复
    0
  • P粉481815897

    P粉4818158972023-08-31 00:28:43

    如果你只想循环遍历APIData中的results

    new Vue({
      el: '#demo',
        data() {
          return {
          APIData: {
            "count": 1,
            "next": null,
            "previous": null,
            "results": [
              {
                "url": "http://localhost:8000/v1/users/1/",
                "username": "admin",
                "email": "admin@example.com",
                "groups": []
              },
              {
                "url": "http://localhost:8000/v1/users/1/",
                "username": "user",
                "email": "user@example.com",
                "groups": []
              }
            ]
          }
        }
      },
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    <div id="demo">
      <template>
        <div>
          <h1> Users </h1>
          <div v-for="result in APIData.results" :key="result.username">
            <h5>{{ result.username }}</h5>
            <p>{{ result.email }}</p>
          </div>
        </div>
      </template>
    </div>

    回复
    0
  • 取消回复