Skip to content

Commit ad1fede

Browse files
committed
change to manual transclude in drop-down-list for proper position of search input
1 parent dd626de commit ad1fede

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
<div class="acq-dropdown-list dropdown" ng-class="{open: $select.open}">
2+
<div class="acq-dropdown-selected"></div>
23
<input type="text" autocomplete="off"
34
class="ui-select-search"
45
placeholder="{{$select.placeholder}}"
56
ng-model="$select.search"
67
ng-show="$select.searchEnabled && $select.open && $select.exceedThreshold">
8+
<div class="acq-dropdown-item"></div>
79
</div>
810

app/scripts/directives/dropdown-list.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
// scope.users = []; // shaded, prototypical inheritance
3131
var $select = ctrls[0];
3232
var ngModel = ctrls[1];
33+
3334
var searchInput = element.querySelectorAll('input.ui-select-search');
3435

3536
//From view --> model
@@ -79,10 +80,15 @@
7980
$select.selected = ngModel.$viewValue;
8081
};
8182

83+
84+
element.on('focus', function(){
85+
console.log('focus event on dropdown-list')
86+
});
8287

8388
// handle key press
8489
element.on('keydown', function(e) {
8590
var key = e.which;
91+
console.log('key event on dropdown-list');
8692
scope.$apply(function() {
8793
var processed = false;
8894
if (!processed && $select.items.length > 0) {
@@ -173,21 +179,22 @@
173179
// var transcludedElement = clone.filter('.my-class')
174180
// instead of creating a hackish DOM element:
175181
// debugger;
176-
element.append(clone);
177-
// debugger;
178-
// var transcludedMatch = transcluded.querySelectorAll('.ui-select-match');
182+
// element.append(clone);
183+
var transcluded = angular.element('<div>').append(clone);
184+
var transcludedMatch = transcluded.querySelectorAll('.acq-dropdown-selected');
185+
179186
// transcludedMatch.removeAttr('ui-select-match'); //To avoid loop in case directive as attr
180-
// //if (transcludedMatch.length !== 1) {
181-
// // throw uiSelectMinErr('transcluded', "Expected 1 .ui-select-match but got '{0}'.", transcludedMatch.length);
182-
// //}
183-
// element.querySelectorAll('.ui-select-match').replaceWith(transcludedMatch);
187+
//if (transcludedMatch.length !== 1) {
188+
// throw uiSelectMinErr('transcluded', "Expected 1 .ui-select-match but got '{0}'.", transcludedMatch.length);
189+
//}
190+
element.querySelectorAll('.acq-dropdown-selected').replaceWith(transcludedMatch);
184191

185-
// var transcludedChoices = transcluded.querySelectorAll('.ui-select-choices');
192+
var transcludedChoices = transcluded.querySelectorAll('.acq-dropdown-item');
186193
// transcludedChoices.removeAttr('ui-select-choices'); //To avoid loop in case directive as attr
187-
// //if (transcludedChoices.length !== 1) {
188-
// // throw uiSelectMinErr('transcluded', "Expected 1 .ui-select-choices but got '{0}'.", transcludedChoices.length);
189-
// //}
190-
// element.querySelectorAll('.ui-select-choices').replaceWith(transcludedChoices);
194+
//if (transcludedChoices.length !== 1) {
195+
// throw uiSelectMinErr('transcluded', "Expected 1 .ui-select-choices but got '{0}'.", transcludedChoices.length);
196+
//}
197+
element.querySelectorAll('.acq-dropdown-item').replaceWith(transcludedChoices);
191198
});
192199
// debugger;
193200

app/scripts/directives/dropdown-selected.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<button type="button" class="form-control acq-dropdown-selected"
22
ng-disabled="$select.disabled"
3-
ng-click="$select.activate()"
4-
ng-hide="$select.open">
3+
ng-click="$select.activate()">
54
<span ng-show="$select.isEmpty()" class="text-muted">{{$select.placeholder}}</span>
65
<!-- transclusion here -->
76
<span ng-hide="$select.isEmpty()" ng-transclude></span>

0 commit comments

Comments
 (0)