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

Commit 91c7148

Browse files
committed
fixed deep watch for options
1 parent 56a73a2 commit 91c7148

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

angularjs-dropdown-multiselect.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
2424

2525
if(checkboxes)
2626
{
27-
template += '<li data-ng-repeat="option in options"><a ng-click="setSelectedItem(getPropertyForObject(option,settings.idProp))"><div class="checkbox"><label><input class="checkboxInput" type="checkbox" ng-click="checkboxClick($event, getPropertyForObject(option,settings.idProp))" ng-checked="isChecked(getPropertyForObject(option,settings.idProp))" /> {{getPropertyForObject(option, settings.displayProp)}}</label></div></a></li>';
27+
template += '<li data-ng-repeat="option in watchedOptions"><a ng-click="setSelectedItem(getPropertyForObject(option,settings.idProp))"><div class="checkbox"><label><input class="checkboxInput" type="checkbox" ng-click="checkboxClick($event, getPropertyForObject(option,settings.idProp))" ng-checked="isChecked(getPropertyForObject(option,settings.idProp))" /> {{getPropertyForObject(option, settings.displayProp)}}</label></div></a></li>';
2828
}
2929
else {
30-
template += '<li data-ng-repeat="option in options"><a ng-click="setSelectedItem(getPropertyForObject(option,settings.idProp))"><span data-ng-class="{\'glyphicon glyphicon-ok\': isChecked(getPropertyForObject(option,settings.idProp))}"></span> {{getPropertyForObject(option, settings.displayProp)}}</a></li>';
30+
template += '<li data-ng-repeat="option in watchedOptions"><a ng-click="setSelectedItem(getPropertyForObject(option,settings.idProp))"><span data-ng-class="{\'glyphicon glyphicon-ok\': isChecked(getPropertyForObject(option,settings.idProp))}"></span> {{getPropertyForObject(option, settings.displayProp)}}</a></li>';
3131
}
3232

3333
template += '</ul>';
@@ -47,6 +47,11 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
4747
$event.stopImmediatePropagation();
4848
};
4949

50+
$scope.$watch('options', function(newValue)
51+
{
52+
$scope.watchedOptions = angular.copy($scope.options);
53+
}, true);
54+
5055
$scope.settings = {
5156
dynamicTitle: true,
5257
defaultText: 'Select',

0 commit comments

Comments
 (0)