this.$el.append(_.template(template)({value: this.options.value || ''}));
this.$('.toggle').dropdown();
this.menu = this.$('.dropdown-menu');
+ this.toggleHandler(false);
if(this.options.inputTemplate) {
this.input = $(this.options.inputTemplate);
this.$('.input-wrapper').append(this.input);
}
+ if(this.options.maxHeight) {
+ this.menu.css('max-height', this.options.maxHeight);
+ }
+ if(this.options.maxWidth) {
+ this.menu.css('max-width', this.options.maxWidth);
+ }
+ },
+ toggleHandler: function(toggle) {
+ this.$('.toggle').css('visibility', toggle ? 'inherit' : 'hidden');
},
addItem: function(value) {
this.menu.append(_.template(itemTemplate)({value: value}));
+ this.toggleHandler(true);
},
- onSelection: function(e) {
- var val = $(e.target).text();
+ clearItems: function() {
+ this.menu.empty();
+ this.toggleHandler(false);
+ },
+ setInput: function(value) {
if(this.options.setInput) {
- this.options.setInput(this.input, val);
+ this.options.setInput(this.input, value);
}
+ },
+ onSelection: function(e) {
+ var val = $(e.target).text();
+ this.setInput(val);
this.trigger('itemSelected', this.input.val());
}
});