diff options
| author | taehoon <th.dev91@gmail.com> | 2019-04-03 23:26:13 -0400 |
|---|---|---|
| committer | taehoon <th.dev91@gmail.com> | 2019-04-17 11:32:48 -0400 |
| commit | e0b246375009a4c533d90def0842bd8cf59f78cc (patch) | |
| tree | f9dd76aee886011f1ce9981eb6a51c2dbb49c990 /src/components/selectable_list/selectable_list.js | |
| parent | d9b3f5be4733f0eef4d3c8dff982224cd1a5303e (diff) | |
save selected items to the state
Diffstat (limited to 'src/components/selectable_list/selectable_list.js')
| -rw-r--r-- | src/components/selectable_list/selectable_list.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/components/selectable_list/selectable_list.js b/src/components/selectable_list/selectable_list.js index 138e63ab..5c01bbab 100644 --- a/src/components/selectable_list/selectable_list.js +++ b/src/components/selectable_list/selectable_list.js @@ -8,6 +8,31 @@ const SelectableList = { items: { type: Array, default: () => [] + }, + getKey: { + type: Function, + default: item => item + } + }, + data () { + return { + selected: [] + } + }, + methods: { + toggle (checked, item) { + const oldChecked = this.isChecked(item) + if (checked !== oldChecked) { + const key = this.getKey(item) + if (checked) { + this.selected.push(key) + } else { + this.selected.splice(this.selected.indexOf(key), 1) + } + } + }, + isChecked (item) { + return this.selected.indexOf(this.getKey(item)) !== -1 } } } |
