Skip to content

Commit 51f1969

Browse files
committed
fix: force kebab-case event names
1 parent f05e9a1 commit 51f1969

File tree

8 files changed

+24
-26
lines changed

8 files changed

+24
-26
lines changed

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,15 @@ If the change (and input) event should be triggered when programmatically settin
4444

4545
See [bootstrap-slider](https://github.com/seiyria/bootstrap-slider) for a full list of options
4646

47+
> :exclamation: When listening to slider events, listen to the kebab-case'd event name and not the camelCase'd. E.g. listen for `@slide-start` and not for `@slideStart`
48+
49+
4750
## Example
4851

4952
```html
5053
<template>
5154
<div>
52-
<b-form-slider :value="value"></b-form-slider>
55+
<b-form-slider :value="value" @slide-start="slideStart" @slide-stop="slideStop"></b-form-slider>
5356
<p>Slider has value {{ value }}</p>
5457
</div>
5558
</template>
@@ -60,6 +63,14 @@ export default {
6063
return {
6164
value: 5
6265
}
66+
},
67+
methods: {
68+
slideStart () {
69+
console.log('slideStarted')
70+
},
71+
slideStop () {
72+
console.log('slideStopped')
73+
}
6374
}
6475
}
6576
</script>

example.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ <h1>Vue.js Bootstrap Slider demo</h1>
1616

1717
<div id="app">
1818
<h1>Basic slider</h1>
19-
<b-form-slider ref="basic" v-model="basicValue" :min="0" :max="100" trigger-change-event></b-form-slider>
19+
<b-form-slider ref="basic" v-model="basicValue" :min="0" :max="100" trigger-change-event @slide-start="slideStart"></b-form-slider>
2020
<p>Value of slider is {{ basicValue }}</p>
2121

2222
<h1>Vertical slider</h1>
@@ -62,6 +62,11 @@ <h1>Range highlighted slider</h1>
6262
{ 'start': 95, 'end': 119, 'class': 'primary-slider' }
6363
]
6464
}
65+
},
66+
methods: {
67+
slideStart: function () {
68+
console.log('slideStarted')
69+
}
6570
}
6671
})
6772
</script>

lib/form-slider.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Slider from 'bootstrap-slider'
2+
import camelCase from 'lodash.camelcase'
23
import snakeCase from 'lodash.snakecase'
34
import throttle from 'lodash.throttle'
45
import props from './properties'
@@ -44,11 +45,11 @@ export default {
4445
this.bindEvents()
4546
}, 10),
4647
bindEvents() {
47-
const events = ['slide', 'slideStart', 'slideStop', 'change', 'slideEnabled', 'slideDisabled']
48+
const events = ['slide', 'slide-start', 'slide-stop', 'change', 'slide-enabled', 'slide-disabled']
4849
events.forEach((event) => {
4950
// only bind the event if the event is bound to us
50-
if (event === 'change' || this._events[event]) {
51-
this.slider.on(event, (value) => {
51+
if (event === 'change' || this.$listeners[event]) {
52+
this.slider.on(camelCase(event), (value) => {
5253
if (this.debounce > 0) {
5354
const now = new Date().getTime()
5455
if (this.lastEvent[event] !== null && now <= this.lastEvent[event] + this.debounce) {
File renamed without changes.
File renamed without changes.

tests/fixtures/form-slider/demo.css

Lines changed: 0 additions & 4 deletions
This file was deleted.

tests/fixtures/form-slider/demo.details

Lines changed: 0 additions & 15 deletions
This file was deleted.

tests/helpers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ window.Vue = Vue
2222
Vue.use(VueBootstrapSlider)
2323

2424
export function loadFixture(name) {
25-
const template = readFile(`${name}/demo.html`)
26-
const js = readFile(`${name}/demo.js`)
25+
const template = readFile(`${name}.html`)
26+
const js = readFile(`${name}.js`)
2727

2828
return async () => {
2929
// Mount template

0 commit comments

Comments
 (0)