multi-select
Version:
A multi-select component for CanJS
104 lines (92 loc) • 2.76 kB
HTML
<!-- The template to be demonstrated/tested -->
<script type="text/stache" id="demo" can-autorender>
<can-import from="multi-select" />
<can-import from="bootstrap/dist/css/bootstrap.css!" />
<div>
<div class="col-sm-3">
<p>
Selected Items:
{{#each selectedItems}}
{{.}},
{{/each}}
</p>
<multi-select selected-values="{selectedItems}">
{{#each items}}
<option value="{{value}}" {{#isSelected}}selected{{/isSelected}}>{{text}}</option>
{{/each}}
</multi-select>
</div>
<div class="col-sm-3">
<p>
Selected Things:
{{#each selectedThings}}
{{.}},
{{/each}}
</p>
<multi-select selected-values="{selectedThings}"
select-all="default"
all-selected-value="-1">
{{#each things}}
<option value="{{value}}" {{#if isSelected}}selected{{/if}}>{{text}}</option>
{{/each}}
</multi-select>
</div>
<div class="col-sm-6">
<p>
Selected Things as {id:value}:
{{#each selectedThings2}}
{ {{id}}: {{name}} },
{{/each}}
</p>
<multi-select list="{things2}"
value-prop="id"
text-prop="name"
selected-prop="isChecked"
selected-items="{selectedThings2}"
select-all></multi-select>
</div>
</div>
<div style="padding-top:100px;">
<div class="col-sm-3">
<p>
Selected Items:
{{#each singleItemSelected}}
{{.}},
{{/each}}
</p>
<multi-select selected-values="{singleItemSelected}">
{{#each singleItemList}}
<option value="{{value}}" {{#isSelected}}selected{{/isSelected}}>{{text}}</option>
{{/each}}
</multi-select>
</div>
</div>
</script>
<!-- The data for the above template. -->
<script src='../node_modules/steal/steal.js'
main="can/view/autorender/">
import can from "can";
import $ from "jquery";
$("#demo").viewModel().attr({
singleItemList: [{'value': 1, 'text':'awesome.pdf'}],
singleItemSelected: [],
items: [
{'value': 1, 'text': 'First'},
{'value': 2, 'text': 'Second', isSelected: true},
{'value': 3, 'text': 'Third'},
{'value': 4, 'text': 'Fourth'},
{'value': 5, 'text': 'Fifth'}
],
selectedItems: [],
things: [
{'value': 1, 'text': 'Thing 1'},
],
things2: [
{'id': 1, 'name': 'Thing 1', 'isChecked': true},
{'id': 2, 'name': 'Thing 2', 'isChecked': false},
{'id': 3, 'name': 'Thing 3', 'isChecked': true}
],
selectedThings: [],
selectedThings2: []
});
</script>