naive-ui/demo/documentation/components/select/enUS/remote-multiple.demo.md

97 lines
1.6 KiB
Markdown
Raw Normal View History

2019-09-25 12:19:57 +08:00
# Remote(Multiple)
Async example for multiple select.
2019-09-25 12:19:57 +08:00
```html
<n-select
2020-10-01 01:53:57 +08:00
v-model:value="selectedValues"
2019-09-25 12:19:57 +08:00
multiple
filterable
placeholder="Search Songs"
:options="options"
:loading="loading"
clearable
2019-09-25 12:19:57 +08:00
remote
@search="handleSearch"
2019-09-25 12:19:57 +08:00
/>
```
```js
const options = [
{
label: 'Drive My Car',
value: 'song1'
},
{
label: 'Norwegian Wood',
value: 'song2'
},
{
label: 'You Won\'t See',
value: 'song3'
},
{
label: 'Nowhere Man',
value: 'song4'
},
{
label: 'Think For Yourself',
value: 'song5'
},
{
label: 'The Word',
value: 'song6'
},
{
label: 'Michelle',
value: 'song7'
},
{
label: 'What goes on',
value: 'song8'
},
{
label: 'Girl',
value: 'song9'
},
{
label: 'I\'m looking through you',
value: 'song10'
},
{
label: 'In My Life',
value: 'song11'
},
{
label: 'Wait',
value: 'song12'
}
]
export default {
data () {
return {
selectedValues: null,
loading: false,
options: [],
noDataContent: 'please search',
handleSearch: (query) => {
if (!query.length) {
this.options = []
this.noDataContent = 'please search'
return
}
this.loading = true
window.setTimeout(() => {
this.options = options.filter(item => ~item.label.indexOf(query))
if (!this.options.length) this.noDataContent = 'no result found'
this.loading = false
}, 1000)
}
}
}
}
2019-11-14 02:18:36 +08:00
```
```css
.n-select {
width: 180px;
margin: 0 12px 8px 0;
}
2019-09-25 12:19:57 +08:00
```