0.1.21 • Published 4 years ago

vue-select-infinite-scroll v0.1.21

Weekly downloads
151
License
-
Repository
-
Last release
4 years ago

vue-select-infinite-scroll

vue-select-infinite-scroll is an infinite scroll dropdown with filter input for vue.js.

Install the library

npm install vue-select-infinite-scroll --save

Demo

Check this DEMO LINK

Usage

Make sure bootstrap-vue is used in your application. In main.js (or any startup file in your project) make sure you have following lines -

import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue)

And import css files

import '../node_modules/bootstrap/dist/css/bootstrap.css';
import '../node_modules/bootstrap-vue/dist/bootstrap-vue.css';

Now import the VueSelectInfiniteScroll component -

import VueSelectInfiniteScroll from 'vue-select-infinite-scroll/src/components/select-infinite-scroll'

Register in components in your vue component -

components: {
  VueSelectInfiniteScroll
}

Add code in template -

<VueSelectInfiniteScroll
  :selectedRecord="selectedRecord"
  @fetchData="fetchData"
/>

Add data property -

selectedRecord: {id: 0, label: 'Select...'}

Add method to return paginated data -

fetchData(params){
    YourApiMethod(params.q, params.page).then(options => {

      //callback function
      params.done(options)
  })
}

Dependencies

vue-select-infinite-scroll has following dependencies -

bootstrap
bootstrap-vue
vue-infinite-scroll

Github repo

visit git repo

Sample code

import VueSelectInfiniteScroll from 'vue-select-infinite-scroll/src/components/select-infinite-scroll'

export default {
  name: 'app',
  components: {
    HelloWorld,
    VueSelectInfiniteScroll,

  },
  data(){
    return{
      lastId: 0,
      selectedRecord: {id: 0, label: 'Select...'}
    }
  },
  methods:{

    // sample api method to return dummy data
    apimethod(){
      return new Promise((resolve) => {
        let vals = []
        for(var i=1; i< 10; i++){
          vals.push(i)
        }
        let options = vals.map(i => ({
          id: this.lastId + i,
          label: `value-${this.lastId + i}`,
        }))
        this.lastId = this.lastId + 9

        resolve(options)
      })
    },
    fetchData(params){

      //change this call with your real api call
      this.apimethod(params.q, params.page).then(options => {

        // call params.done to push data to select control source
        params.done(options)
      })

    }
  }
}
0.1.21

4 years ago

0.1.20

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago