How to load Array Data into Vuetify Select Input

Asked by Eliel Bowers on
Tags: select array
8 Answers

Answer by Jaxson Jensen

I'm trying to show "locations" in a vuetify select component, but my current code renders "[object Object]" instead of Location 1, Location 2, etc., In GD-optimisation, if the gradient of the error function is w.r.t to the weights, isn't the target value dropped since it's a lone constant? , Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers , @KeinGenie Not that I'm aware of. I think in that case you would have to create a derived property (result of the calculation using title and manager) and use that property as item-text. – acdcjunior Aug 21 '20 at 23:19

From your screenshot, for instance, title is a possible property:

<v-select
:items="locations"
v-model="location"
label="Choose Location"
item-text="title"
bottom
autocomplete
></v-select>
new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons'>
<link rel='stylesheet' href='https://unpkg.com/[email protected]/dist/vuetify.min.css'>
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script src='https://unpkg.com/[email protected]/dist/vuetify.min.js'></script>

<div id="app">
  <v-app>
    <v-container>
      <v-select
        :items="locations"
        v-model="location"
        label="Choose Location"
        bottom
        autocomplete
        >
      </v-select>
    </v-container>
  </v-app>
</div>
new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons'>
<link rel='stylesheet' href='https://unpkg.com/[email protected]/dist/vuetify.min.css'>
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script src='https://unpkg.com/[email protected]/dist/vuetify.min.js'></script>

<div id="app">
  <v-app>
    <v-container>
      <v-select
        :items="locations"
        v-model="location"
        label="Choose Location"
        item-text="title"
        bottom
        autocomplete
        >
      </v-select>
    </v-container>
  </v-app>
</div>

Source: https://stackoverflow.com/questions/49469589/how-to-load-array-data-into-vuetify-select-input


Answer by Margot Tate

I'm trying to show "locations" in a vuetify select component, but my current code renders "[object Object]" instead of Location 1, Location 2, etc.,You could write your own job to migrate the data. But Sqoop would be more convenient. To do that you have to download Sqoop and the appropriate connector, Microsoft SQL Server Connector for Apache Hadoop in your case. You can download it from here.Please go through the Sqoop user guide. It contains all the information in proper detail. ,Reference: https://docs.microsoft.com/dotnet/api/system.data.datarowcollection.add?view=net-5.0#System_Data_DataRowCollection_Add_System_Data_DataRow_,Here is a screenshot of what the location data looks like:

My select component:

<v-select
:items="locations"
v-model="location"
label="Choose Location"
bottom
autocomplete
></v-select>

Locations:

locations () {
  return this.$store.getters.getLocationsForEvent(this.event.id)
}

Vuex Getter:

getLocationsForEvent: (state) => (id) => {
  return state.loadedLocations.filter(function (location) { 
    return location.eventId === id; 
  });
}

Source: https://coderedirect.com/questions/410759/how-to-load-array-data-into-vuetify-select-input


Answer by Griffin Colon

When using objects for the items prop, you must associate item-text and item-value with existing properties on your objects. These values are defaulted to text and value and can be changed.,You can specify the specific properties within your items array correspond to the text and value fields. By default, this is text and value. In this example we also use the return-object prop which will return the entire object of the selected item on selection.,The auto property of menu-props is only supported for the default input style.,Custom props can be passed directly to v-menu using menuProps prop. In this example menu is force directed to top and shifted to top.

# Disabled

Applying the disabled prop to a v-select will prevent a user from interacting with the component.

v-select

Source: https://vuetifyjs.com/en/components/selects/


Answer by Foster Lucero

<script>let options = [{code: 'CA', country: 'Canada'}];</script>

<v-select :options="options" :reduce="country => country.code" label="country" />

Source: https://www.codegrepper.com/code-examples/html/V-select%2Barray%2Bof%2Bobjects


Answer by Ava Thompson

I'm trying to show "locations" in a vuetify select component, but my current code renders "[object Object]" instead of Location 1, Location 2, etc.,Here is a screenshot of what the location data looks like:,Note** this option does not delete the question immediately,Since others contribution also matters and security reasons.Your request will be Queued.We will review the question and remove.It may take some days.,For custom objects you have to specify the item-text. The item-text is what each option will display.

My select component:

<v-select
:items="locations"
v-model="location"
label="Choose Location"
bottom
autocomplete
></v-select>

Locations:

locations () {
  return this.$store.getters.getLocationsForEvent(this.event.id)
}

Vuex Getter:

getLocationsForEvent: (state) => (id) => {
  return state.loadedLocations.filter(function (location) { 
    return location.eventId === id; 
  });
}

Source: https://www.titanwolf.org/Network/q/ab98827f-5602-4e5f-8cae-e08199f60a39/y


Answer by Cody Wong

And inside my data props section I have something like this:,I’m working on a modal form which will display a number of v-select or v-text-field… however, the number and types of these elements are being pulled from a database which means the vuetify code to create the elements needs to be dynamic. To start, I have a json object which is returned from the database which describes each input element. If the input is a v-select, then the json property called InputType is set to ‘Combobox’. If it’s a v-text-field then the InputType is set to ‘Textbox’. Here’s a sample.,So, I updated my code according to Leonardo’s suggestion (which works), but now I’m running into an issue. I don’t know how to assign the tag Name to the label for each input object. I thought I could try something like ‘tag.Name’ but that doesn’t work. Any thoughts?,Unfortunately, I couldn’t reproduce this example in my machine so I’m not sure if it’ll work. Maybe you should open a new question asking what’s the best way to resolve this new problem specifically.

{
  tags: [
    {
      TagDefinitionId: '1',
      InputType: 'Combobox',
      Name: 'Tag1',
      TagValueOptions: [
        {
          Value: 'Option 1',
        },
        {
          Value: 'Option 2',
        },
        {
          Value: 'Option 3',
        },
      ],
    },
    {
      TagDefinitionId: '2',
      InputType: 'Textbox',
      Name: 'Project Name',
      TagValueOptions: [],
    },
  ],
}

Source: https://javascript.tutorialink.com/dynamic-vuetify-textbox-or-select-based-on-array-values/


Answer by Ezequiel Meza

When the options array contains objects, vue-select returns the whole object as dropdown value upon selection. This approach makes no assumptions about the data you need, and provides a lot of flexibility. However, there will be situations where you just need to return a single key from an object.,When providing Vue Select with a reduced value - the object that the value was reduced from must exist in the options array.,The value prop lets vue-select know what value is currently selected. It will accept strings, numbers or objects. If you're using a multiple v-select, you'll want to pass an array.,If you need to return a single key, or transform the selection before it is synced, vue-select provides a reduce callback that allows you to transform a selected option before it is passed to the @input event. Consider this data structure:


<v-select v-model="selected" />

Source: https://vue-select.org/guide/values.html


Answer by Rowan Bowman

Fundamental text and font styling,Let's load this component into our app. Go back to App.vue and add the following import statement just below the previous one, inside your <script> element: import ToDoForm from './components/ToDoForm'; ,Creating an item component,Passing data to parents with custom events

<template></template>

<script>
  export default {};
</script>

Source: https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models