Skip to content

Instantly share code, notes, and snippets.

@tmeasday
Created August 16, 2012 08:41
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmeasday/3368472 to your computer and use it in GitHub Desktop.
Save tmeasday/3368472 to your computer and use it in GitHub Desktop.
Very basic reactive select for meteor
{{> select selectData}}
Template.foo.selectData = {
include_blank: true
icon: 'player'
name: 'players_required',
options: ({text: "#{i} players", value: i, selected: i == required} for i in [3..18])
}
Template.select.selected_text = ->
unless @selected_text?
selected_option = _.find(@options, (o) -> o.selected)
text = selected_option.text if selected_option
Meteor.deps.add_reactive_variable(this, 'selected_text', text)
@selected_text()
Template.select.events =
'change select': (event) ->
@selected_text.set($(event.target).find('option:selected').text())
<template name="select">
<div class="select">
<select name="{{name}}">
{{#if include_blank}}<option></option>{{/if}}
{{#each options}}
<option {{#if selected}}selected{{/if}} value="{{value}}">{{text}}</option>
{{/each}}
</select>
<a class="btn secondary">
{{#if icon}}
<span class="icon16 {{icon}}"></span>
{{/if}}
<span class="selected_text">{{selected_text}} </span>
<span class="icon12 arrows"></span>
</a>
</div>
</template>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment