diff --git a/docs/app/pages/Components/Select/Select.vue b/docs/app/pages/Components/Select/Select.vue index 525370f78..a7ffc8e4c 100644 --- a/docs/app/pages/Components/Select/Select.vue +++ b/docs/app/pages/Components/Select/Select.vue @@ -115,14 +115,19 @@ events: { headings: ['Name', 'Description', 'Value'], props: [ + { + name: 'md-selected', + description: 'Triggered when model changes.', + value: 'Value of v-model' + }, { name: 'md-opened', - description: 'Triggered when the select is opened.', + description: 'Triggered when select is opened.', value: 'none' }, { name: 'md-closed', - description: 'Triggered when the select is closed.', + description: 'Triggered when select is closed.', value: 'none' } ] diff --git a/src/components/MdField/MdSelect/MdSelect.vue b/src/components/MdField/MdSelect/MdSelect.vue index 99aa35e19..ad297808a 100644 --- a/src/components/MdField/MdSelect/MdSelect.vue +++ b/src/components/MdField/MdSelect/MdSelect.vue @@ -204,12 +204,14 @@ let includes = index > -1 if (!includes) { this.localValue = this.localValue.concat([value]) - return + } else { + this.localValue = this.arrayAccessorRemove(this.localValue, index) } - this.localValue = this.arrayAccessorRemove(this.localValue, index) + this.emitSelected(this.localValue) }, setValue (newValue) { this.model = newValue + this.emitSelected(newValue) this.setFieldValue() this.showSelect = false }, @@ -227,7 +229,6 @@ }, setMultipleValue (value) { const newValue = value - this.toggleArrayValue(newValue) this.setFieldValue() }, @@ -264,6 +265,9 @@ if (!this.multiple && isArray) { this.localValue = this.localValue.length > 0 ? this.localValue[0] : null } + }, + emitSelected (value) { + this.$emit('md-selected', value) } }, async mounted () {