2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-05-17 02:29:37 +03:00

- move mutableLoading data property to ajax mixin

- open dropdown only when not loading
- add watcher to keep loading synced with mutableLoading
This commit is contained in:
Jeff Sagal
2017-03-22 18:33:32 -07:00
parent 4581d732dc
commit bae486a8e3
3 changed files with 28 additions and 3 deletions
+2 -3
View File
@@ -488,8 +488,7 @@
search: '',
open: false,
mutableValue: null,
mutableOptions: [],
mutableLoading: false
mutableOptions: []
}
},
@@ -765,7 +764,7 @@
* @return {Boolean} True if open
*/
dropdownOpen() {
return this.noDrop ? false : this.open
return this.noDrop ? false : this.open && !this.mutableLoading
},
/**
+14
View File
@@ -27,6 +27,12 @@ module.exports = {
}
},
data() {
return {
mutableLoading: false
}
},
watch: {
/**
* If a callback & search text has been provided,
@@ -38,6 +44,14 @@ module.exports = {
this.$emit('search', this.search, this.toggleLoading)
}
},
/**
* Sync the loading prop with the internal
* mutable loading value.
* @param val
*/
loading(val) {
this.mutableLoading = val
}
},
methods: {
+12
View File
@@ -1058,6 +1058,18 @@ describe('Select.vue', () => {
done()
})
})
it('will sync mutable loading with the loading prop', (done) => {
const vm = new Vue({
template: '<div><v-select ref="select" :loading="loading"></v-select></div>',
data: {loading:false}
}).$mount()
vm.loading = true
Vue.nextTick(() => {
expect(vm.$refs.select.mutableLoading).toEqual(true)
done()
})
})
})
describe('Reset on options change', () => {