From 223f02fc598cd4d550baf03f82874839ee95e2c1 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Fri, 16 Dec 2016 14:39:16 +0100 Subject: [PATCH] Added multiple options Resolves #24 --- package.json | 2 +- src/select2.component.ts | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index cf8f17c..c22fc61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ng2-select2", - "version": "0.7.0", + "version": "1.0.0-beta.0", "description": "Angular2 wrapper for select2", "main": "ng2-select2.js", "typings": "ng2-select2.d.ts", diff --git a/src/select2.component.ts b/src/select2.component.ts index 41a1cbc..852591a 100644 --- a/src/select2.component.ts +++ b/src/select2.component.ts @@ -504,21 +504,23 @@ export class Select2Component implements AfterViewInit, OnChanges, OnDestroy { // data for select2 drop down @Input() data: Array; - @Input() value: any; - @Output() valueChanged = new EventEmitter(); - @Output() blur = new EventEmitter(); + // value for select2 + @Input() value: any; - // Optional options for select2 + // width of select2 input @Input() width: string; - @Input() theme: string; - @Input() templateSelection: Select2TemplateFunction; - @Input() templateResult: Select2TemplateFunction; + + // all additional options + @Input() options: Select2Options; + + // emitter when value is changed + @Output() valueChanged = new EventEmitter(); private element: JQuery = undefined; private check: boolean = false; - constructor(private renderer: Renderer) {} + constructor(private renderer: Renderer) { } ngOnChanges(changes: SimpleChanges) { if(!this.element) { @@ -573,7 +575,6 @@ export class Select2Component implements AfterViewInit, OnChanges, OnDestroy { if(!this.check) { this.check = true; console.log("Please add Select2 library (js file) to the project. You can download it from https://github.com/select2/select2/tree/master/dist/js."); - } return; @@ -585,12 +586,11 @@ export class Select2Component implements AfterViewInit, OnChanges, OnDestroy { this.renderer.setElementProperty(this.selector.nativeElement, 'innerHTML', ''); } - this.element.select2({ + let options: Select2Options = { data: this.data, - templateResult: this.templateResult, - templateSelection: this.templateSelection, - theme: (this.theme) ? this.theme : 'default', width: (this.width) ? this.width : 'resolve' - }); + }; + + this.element.select2(Object.assign(options, this.options)); } }