2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vueの書き方でつまづいた所。v-select : itemにajaxで取得したdataの一部を表示させたい!

Posted at

最近は全くQiitaを書く余裕がありません!
それくらい毎日全力で必死に生きております笑

ただ今慣れないvue.jsでとあるプロダクトを作っています。
毎日いちいちつまづきまくっていますが、その1つを今日は記載します。

#実施していること

ベタですが、vue.js(vuetify導入)とLaravelで簡単なtodo管理アプリ的なのを作っていました。
ajax(axios)とAPIでデータの受け渡しをしています。

#困ったこと
ajaxで受け取れたデータをv-selectの :itemsに上手く表示できない!

##該当コード

   <v-select
     v-model="todo"
     :items="todos"
     prepend-icon="mdi-clipboard-check-multiple-outline"
     label="to doを選択"
      >
   </v-select>

<script>
  export default {
    data: () => ({
      todo: [],
      todos: [],
      }),
    
     methods: {
    

    fetchTodos: function(){
      axios.get('/api/get')
      .then(res=>{
        console.log(res)
        this.todos=res.data 
      })
    },
    },
    
    created() {
    this.fetchTodos()
  },
  }
</script>

非常にシンプルでよくあるコードです。
resの中身はデベロッパーツールで確認済み。

console.log(res)
[{…}, {…}]
  0: {…}
    id: (1)
    user_id: (1)
    name: (hoge)
    created_at: (...)
    updated_at: (...)
  1: {…}
     id: (2)
    user_id: (2)
    name: (hogehoge)
    created_at: (...)
    updated_at: (...)

このnameを :items="todos" に追加したい!
ここまでデータとれてるから絶対出来るじゃん!
と確信しつつもなかなか答えに辿りつかず。

上記のように this.todos=res.dataと記載するとitemsの中身は[object Object]、
配列のままそらぁそうだ、
だって配列の中のnameだけ下さいって指示書いてないもーん。
でもその指示の書き方がわかりません・・・

出来たコードがこちら

 <v-select
   v-model="todo"
   item-value="id"
   item-text="name"
   :items="todos"
   prepend-icon="mdi-clipboard-check-multiple-outline"
   label="to doを選択"
   >
  </v-select>

item-value と item-textを利用すると表示できました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?