summaryrefslogtreecommitdiffstats
path: root/angular-multi-select.js
diff options
context:
space:
mode:
Diffstat (limited to 'angular-multi-select.js')
-rw-r--r--angular-multi-select.js18
1 files changed, 11 insertions, 7 deletions
diff --git a/angular-multi-select.js b/angular-multi-select.js
index 90afa88..67ef99d 100644
--- a/angular-multi-select.js
+++ b/angular-multi-select.js
@@ -120,6 +120,7 @@ angular.module( 'multi-select', ['ng'] ).directive( 'multiSelect' , [ '$sce', '$
$scope.selectedItems = [];
$scope.formElements = [];
$scope.tabIndex = 0;
+ $scope.clickedItem = null;
prevTabIndex = 0;
helperItems = [];
helperItemsLength = 0;
@@ -376,12 +377,11 @@ angular.module( 'multi-select', ['ng'] ).directive( 'multiSelect' , [ '$sce', '$
// single item click
else {
- $scope.filteredModel[ index ][ $scope.tickProperty ] = !$scope.filteredModel[ index ][ $scope.tickProperty ];
+ $scope.filteredModel[ index ][ $scope.tickProperty ] = !$scope.filteredModel[ index ][ $scope.tickProperty ];
// we refresh input model as well
inputModelIndex = $scope.filteredModel[ index ][ $scope.indexProperty ];
- $scope.inputModel[ inputModelIndex ][ $scope.tickProperty ] = $scope.filteredModel[ index ][ $scope.tickProperty ];
-
+ $scope.inputModel[ inputModelIndex ][ $scope.tickProperty ] = $scope.filteredModel[ index ][ $scope.tickProperty ];
// If it's single selection mode
if ( attrs.selectionMode && $scope.selectionMode.toUpperCase() === 'SINGLE' ) {
@@ -393,9 +393,9 @@ angular.module( 'multi-select', ['ng'] ).directive( 'multiSelect' , [ '$sce', '$
}
$scope.toggleCheckboxes( e );
}
- }
+ }
- $scope.onItemClick( { data: item } );
+ $scope.clickedItem = angular.copy( item );
// We update the index here
prevTabIndex = $scope.tabIndex;
@@ -831,11 +831,15 @@ angular.module( 'multi-select', ['ng'] ).directive( 'multiSelect' , [ '$sce', '$
// watch1, for changes in input model property
// updates multi-select when user select/deselect a single checkbox programatically
// https://github.com/isteven/angular-multi-select/issues/8
- $scope.$watch( 'inputModel' , function( newVal ) {
+ $scope.$watch( 'inputModel' , function( newVal ) {
if ( newVal ) {
$scope.refreshSelectedItems();
$scope.refreshOutputModel();
- $scope.refreshButton();
+ $scope.refreshButton();
+ if ( $scope.clickedItem !== null ) {
+ $scope.onItemClick( { data: $scope.clickedItem } );
+ $scope.clickedItem = null;
+ }
}
}, true);