From 488769c94396268781215048c83a0dcbfff225cb Mon Sep 17 00:00:00 2001 From: pablohpsilva Date: Sun, 14 May 2017 11:47:00 -0300 Subject: [PATCH 1/3] fix on issue #742. --- docs/src/pages/components/Select.vue | 3 ++- src/components/mdSelect/mdSelect.vue | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/src/pages/components/Select.vue b/docs/src/pages/components/Select.vue index 93958cc..ab13033 100644 --- a/docs/src/pages/components/Select.vue +++ b/docs/src/pages/components/Select.vue @@ -325,8 +325,9 @@ - +
Selected users: {{ users }}
+
diff --git a/src/components/mdSelect/mdSelect.vue b/src/components/mdSelect/mdSelect.vue index 75a469a..c5ce819 100644 --- a/src/components/mdSelect/mdSelect.vue +++ b/src/components/mdSelect/mdSelect.vue @@ -60,6 +60,7 @@ watch: { value(value) { this.setTextAndValue(value); + this.selectOptions(value); }, disabled() { this.setParentDisabled(); @@ -81,6 +82,16 @@ setParentPlaceholder() { this.parentContainer.hasPlaceholder = !!this.placeholder; }, + selectOptions(modelValue) { + const optionsArray = Object.keys(this.options).map((el) => this.options[el]); + + if (optionsArray && optionsArray.length) { + optionsArray.filter((el) => modelValue.indexOf(el.value) !== -1) + .forEach((el) => { + el.check = true; + }); + } + }, getSingleValue(value) { let output = {}; @@ -124,7 +135,9 @@ return {}; }, setTextAndValue(modelValue) { - const output = this.multiple ? this.getMultipleValue(modelValue) : this.getSingleValue(modelValue); + const output = this.multiple ? + this.getMultipleValue(modelValue) : + this.getSingleValue(modelValue); this.selectedValue = output.value; this.selectedText = output.text; From 034f845c11e3e2241800c168a7a83a6867b97bf1 Mon Sep 17 00:00:00 2001 From: pablohpsilva Date: Sun, 14 May 2017 18:11:34 -0300 Subject: [PATCH 2/3] enhancing the documentation and adding mdOption value prop to accept object --- docs/src/pages/components/Select.vue | 22 +++++++++++++++++++++- src/components/mdSelect/mdOption.vue | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/docs/src/pages/components/Select.vue b/docs/src/pages/components/Select.vue index ab13033..c49b845 100644 --- a/docs/src/pages/components/Select.vue +++ b/docs/src/pages/components/Select.vue @@ -327,6 +327,18 @@
Selected users: {{ users }}
+ +
+ + + + + {{ option.name }} + + +
@@ -404,7 +416,15 @@ users: [ 'jim_halpert', 'michael_scott' - ] + ], + options: [ + { id: 1, name: 'a' }, + { id: 2, name: 'b' }, + { id: 3, name: 'c' }, + { id: 4, name: 'd' }, + { id: 5, name: 'e' } + ], + items: [] }), methods: { setPulpFiction() { diff --git a/src/components/mdSelect/mdOption.vue b/src/components/mdSelect/mdOption.vue index be73fef..18896e8 100644 --- a/src/components/mdSelect/mdOption.vue +++ b/src/components/mdSelect/mdOption.vue @@ -21,7 +21,7 @@ export default { props: { - value: [String, Boolean, Number] + value: [String, Boolean, Number, Object] }, data: () => ({ parentSelect: {}, From c6b687d642acc46a5f9e4086d31a7360c6e06b3b Mon Sep 17 00:00:00 2001 From: pablohpsilva Date: Sun, 14 May 2017 18:21:11 -0300 Subject: [PATCH 3/3] better docs --- docs/src/pages/components/Select.vue | 63 ++++++++++++++++++---------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/docs/src/pages/components/Select.vue b/docs/src/pages/components/Select.vue index c49b845..8fdce00 100644 --- a/docs/src/pages/components/Select.vue +++ b/docs/src/pages/components/Select.vue @@ -303,7 +303,24 @@
- + + + + {{ option.name }} + + + +
+ +
Selected letters: {{ items }}
+
+
+ +
+ + Managers Jim Halpert @@ -327,23 +344,25 @@
Selected users: {{ users }}
- -
- - - - - {{ option.name }} - - -
+ <md-input-container> + <label for="users=">Simple multiselect</label> + <md-select name="option=" id="option=" multiple v-model="items="> + <md-option v-for="option in options=" + :key="option=" + :value="option="> + { { option.name } } + </md-option> + <md-select> + </md-input-container> + + <div>Selected letters: {{ items }}</div> + + <md-input-container> <label for="users">Users</label> <md-select name="users" id="users" multiple v-model="users"> @@ -374,10 +393,15 @@ export default { data: () => ({ food: '', - users: [ - 'jim_halpert', - 'michael_scott' - ] + users: [], + options: [ + { id: 1, name: 'a' }, + { id: 2, name: 'b' }, + { id: 3, name: 'c' }, + { id: 4, name: 'd' }, + { id: 5, name: 'e' } + ], + items: [] }) }; @@ -413,10 +437,7 @@ country: '', font: '', food: '', - users: [ - 'jim_halpert', - 'michael_scott' - ], + users: [], options: [ { id: 1, name: 'a' }, { id: 2, name: 'b' },