Skip to content

Commit 33009db

Browse files
authored
feat(ui5-multi-combobox): implement angular two way data binding (#1363)
1 parent d6bb698 commit 33009db

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

packages/main/src/MultiComboBox.js

+11-3
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ class MultiComboBox extends UI5Element {
408408
deletingItem.selected = false;
409409
this._deleting = true;
410410

411-
this.fireEvent("selectionChange", { items: this._getSelectedItems() });
411+
this.fireSelectionChange();
412412
}
413413

414414
_tokenizerFocusOut() {
@@ -476,7 +476,9 @@ class MultiComboBox extends UI5Element {
476476
}
477477

478478
_getSelectedItems() {
479-
return this.items.filter(item => item.selected);
479+
// Angular 2 way data binding
480+
this.selectedValues = this.items.filter(item => item.selected);
481+
return this.selectedValues;
480482
}
481483

482484
_listSelectionChange(event) {
@@ -488,7 +490,7 @@ class MultiComboBox extends UI5Element {
488490
});
489491
});
490492

491-
this.fireEvent("selectionChange", { items: this._getSelectedItems() });
493+
this.fireSelectionChange();
492494

493495
if (!event.detail.selectionComponentPressed && !isSpace(event.detail)) {
494496
this.allItemsPopover.close();
@@ -497,6 +499,12 @@ class MultiComboBox extends UI5Element {
497499
}
498500
}
499501

502+
fireSelectionChange() {
503+
this.fireEvent("selectionChange", { items: this._getSelectedItems() });
504+
// Angular 2 way data binding
505+
this.fireEvent("value-changed");
506+
}
507+
500508
async _getRespPopover() {
501509
const staticAreaItem = await this.getStaticAreaItemDomRef();
502510
this.selectedItemsPopover = staticAreaItem.querySelector(`.ui5-multi-combobox-selected-items-responsive-popover`);

0 commit comments

Comments
 (0)