Skip to content

Commit

Permalink
fix: don't fire change event for same selection
Browse files Browse the repository at this point in the history
fixes #664
  • Loading branch information
varnastadeus committed Jul 9, 2018
1 parent cbfd948 commit 8ed435c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
7 changes: 4 additions & 3 deletions src/ng-select/ng-select.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2423,10 +2423,11 @@ describe('NgSelectComponent', function () {

spyOn(fixture.componentInstance, 'onChange');

fixture.componentInstance.selectedCity = fixture.componentInstance.cities[0];
tickAndDetectChanges(fixture);
triggerKeyDownEvent(getNgSelectElement(fixture), KeyCode.Space);
triggerKeyDownEvent(getNgSelectElement(fixture), KeyCode.Enter);

fixture.componentInstance.select.select(fixture.componentInstance.cities[0]);
triggerKeyDownEvent(getNgSelectElement(fixture), KeyCode.Space);
triggerKeyDownEvent(getNgSelectElement(fixture), KeyCode.Enter);

expect(fixture.componentInstance.onChange).toHaveBeenCalledTimes(1);
}));
Expand Down
21 changes: 10 additions & 11 deletions src/ng-select/ng-select.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -372,20 +372,21 @@ export class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, C
}

select(item: NgOption) {
this.itemsList.select(item);
if (this.clearSearchOnAdd) {
this._clearSearch();
}
if (!item.selected) {
this.itemsList.select(item);
if (this.clearSearchOnAdd) {
this._clearSearch();
}

if (this.multiple) {
this.addEvent.emit(item.value);
if (this.multiple) {
this.addEvent.emit(item.value);
}
this._updateNgModel();
}

if (this.closeOnSelect || this.itemsList.noItemsToSelect) {
this.close();
}

this._updateNgModel();
}

focus() {
Expand Down Expand Up @@ -586,9 +587,7 @@ export class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, C
};

if (this.multiple) {
(<any[]>ngModel).forEach(item => {
select(item);
});
(<any[]>ngModel).forEach(item => select(item));
} else {
select(ngModel);
}
Expand Down

0 comments on commit 8ed435c

Please sign in to comment.