Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 4c3d9bf

Browse files
committed
Change indexOf to manual toggle
Add reset of toggle
1 parent 8391fbf commit 4c3d9bf

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/ng/directive/select.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
224224
optionsExp = attr.ngOptions,
225225
nullOption = false, // if false, user will not be able to select it (used by ngOptions)
226226
emptyOption,
227+
renderScheduled = false,
227228
// we can't just jqLite('<option>') since jqLite is not smart enough
228229
// to create it in <select> and IE barfs otherwise.
229230
optionTemplate = jqLite(document.createElement('option')),
@@ -414,14 +415,16 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
414415
ctrl.$render = render;
415416

416417
scope.$watchCollection(valuesFn, function () {
417-
if (scope.$$postDigestQueue.indexOf(render) === -1) {
418+
if (!renderScheduled) {
418419
scope.$$postDigest(render);
420+
renderScheduled = true;
419421
}
420422
});
421423
if ( multiple ) {
422424
scope.$watchCollection(function() { return ctrl.$modelValue; }, function () {
423-
if (scope.$$postDigestQueue.indexOf(render) === -1) {
425+
if (!renderScheduled) {
424426
scope.$$postDigest(render);
427+
renderScheduled = true;
425428
}
426429
});
427430
}
@@ -612,6 +615,8 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
612615
while(optionGroupsCache.length > groupIndex) {
613616
optionGroupsCache.pop()[0].element.remove();
614617
}
618+
619+
renderScheduled = false;
615620
}
616621
}
617622
}

0 commit comments

Comments
 (0)