Skip to content
This repository was archived by the owner on Dec 16, 2019. It is now read-only.

Commit b296469

Browse files
committed
Add event onSelectionChanged
#8
1 parent 3088dc0 commit b296469

File tree

3 files changed

+27
-22
lines changed

3 files changed

+27
-22
lines changed

pages/javascripts/pages/home/ExampleCtrl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ angular.module('exampleApp').controller('ExampleCtrl', ['$scope', function($scop
1212
};
1313

1414
$scope.testevents = {
15-
'onMaxSelectionReached': function () { // This event is not firing on selection of max limit
16-
alert("you can not select more than 2 contacts");
15+
'onSelectionChanged': function () { // This event is not firing on selection of max limit
16+
alert("you changed selection");
1717
}
1818
}
1919

pages/javascripts/pages/home/home.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@ <h2>Settings</h2>
10791079
<tr>
10801080
<td>template</td>
10811081
<td>String</td>
1082-
<td>{{getPropertyForObject(option, settings.displayProp)} }</td>
1082+
<td> { {getPropertyForObject(option, settings.displayProp)} }</td>
10831083
<td>Can be used to modify the appearance of an option in the list, each option is accessible as option.</td>
10841084
</tr>
10851085
</tbody>
@@ -1125,6 +1125,11 @@ <h2>Events</h2>
11251125
<td></td>
11261126
<td>Fired when the user reaches the max allowed selected items.</td>
11271127
</tr>
1128+
<tr>
1129+
<td>onSelectionChanged</td>
1130+
<td></td>
1131+
<td>Fired when the selection changes.</td>
1132+
</tr>
11281133
</tbody>
11291134
</table>
11301135
<h2>Translation Texts</h2>
@@ -1186,3 +1191,4 @@ <h2>Translation Texts</h2>
11861191
</tbody>
11871192
</table>
11881193
</div>
1194+

src/angularjs-dropdown-multiselect.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -306,26 +306,25 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
306306
angular.extend($scope.selectedModel, finalObj);
307307
$scope.externalEvents.onItemSelect(finalObj);
308308
if ($scope.settings.closeOnSelect || $scope.settings.closeOnDeselect) $scope.open = false;
309-
310-
return;
311-
}
312-
313-
dontRemove = dontRemove || false;
314-
315-
var exists = findIndex($scope.selectedModel, findObj) !== -1;
316-
317-
if (!dontRemove && exists) {
318-
$scope.selectedModel.splice(findIndex($scope.selectedModel, findObj), 1);
319-
$scope.externalEvents.onItemDeselect(findObj);
320-
if ($scope.settings.closeOnDeselect) $scope.open = false;
321-
} else if (!exists && ($scope.settings.selectionLimit === 0 || $scope.selectedModel.length < $scope.settings.selectionLimit)) {
322-
$scope.selectedModel.push(finalObj);
323-
$scope.externalEvents.onItemSelect(finalObj);
324-
if ($scope.settings.closeOnSelect) $scope.open = false;
325-
if ($scope.settings.selectionLimit > 0 && $scope.selectedModel.length === $scope.settings.selectionLimit) {
326-
$scope.externalEvents.onMaxSelectionReached();
327-
}
309+
} else {
310+
dontRemove = dontRemove || false;
311+
312+
var exists = findIndex($scope.selectedModel, findObj) !== -1;
313+
314+
if (!dontRemove && exists) {
315+
$scope.selectedModel.splice(findIndex($scope.selectedModel, findObj), 1);
316+
$scope.externalEvents.onItemDeselect(findObj);
317+
if ($scope.settings.closeOnDeselect) $scope.open = false;
318+
} else if (!exists && ($scope.settings.selectionLimit === 0 || $scope.selectedModel.length < $scope.settings.selectionLimit)) {
319+
$scope.selectedModel.push(finalObj);
320+
$scope.externalEvents.onItemSelect(finalObj);
321+
if ($scope.settings.closeOnSelect) $scope.open = false;
322+
if ($scope.settings.selectionLimit > 0 && $scope.selectedModel.length === $scope.settings.selectionLimit) {
323+
$scope.externalEvents.onMaxSelectionReached();
324+
}
325+
}
328326
}
327+
$scope.externalEvents.onSelectionChanged();
329328
};
330329

331330
$scope.isChecked = function (id) {

0 commit comments

Comments
 (0)