@@ -3,11 +3,16 @@ angular.module('ui.select', ['ui.keypress']).directive('uiSelect', function($doc
3
3
restrict : 'E' ,
4
4
/* jshint multistr: true */
5
5
template :
6
- '<div class="select" ng-class="{open:open}"> \
7
- <button type="button" ng-click="activate()">{{$select.selected.title || \'Select Me \' }}</button> \
8
- <div class="ui-select-drop"> \
9
- <input class="ui-select-search" type="text" ui-keydown="{up: \'up()\', down: \'down()\', esc: \'close()\', enter: \'$select((data.items|filter: $select.search)[$select.index])\'}" ng-model="$select.search"> \
10
- <ul class="ui-select-choices" /> \
6
+ '<div class="ui-select-container" ng-class="{\'ui-select-container-active ui-select-dropdown-open\':open}"> \
7
+ <a href="javascript:void(0)" class="ui-select-choice" ng-click="activate()"> \
8
+ <span class="select2-chosen">{{$select.selected.title || \'Select Me \' }}</span> \
9
+ <span class="ui-select-arrow"><b></b></span> \
10
+ </a> \
11
+ <div ng-class="{\'ui-select-display-none\':!open}" class="ui-select-drop ui-select-with-searchbox ui-select-drop-active"> \
12
+ <div class="ui-select-search"> \
13
+ <input class="ui-select-input" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" ui-keydown="{up: \'up()\', down: \'down()\', esc: \'close()\', enter: \'$select((data.items|filter: $select.search)[$select.index])\'}" ng-model="$select.search"> \
14
+ </div> \
15
+ <ul class="ui-select-results" /> \
11
16
</div> \
12
17
</div>' ,
13
18
replace : true ,
@@ -18,6 +23,8 @@ angular.module('ui.select', ['ui.keypress']).directive('uiSelect', function($doc
18
23
return function ( $scope , $elm , $attrs , ngModel ) {
19
24
transcludeFn ( $scope , function ( clone ) {
20
25
26
+ $scope . open = false ;
27
+
21
28
var getElementsByClassName = ( function ( ) {
22
29
//To support IE8
23
30
return document . getElementsByClassdName ?
@@ -29,9 +36,7 @@ angular.module('ui.select', ['ui.keypress']).directive('uiSelect', function($doc
29
36
} ;
30
37
} ) ( ) ;
31
38
32
- var dropDiv = getElementsByClassName ( tElement [ 0 ] , 'ui-select-drop' ) ;
33
- var choices = getElementsByClassName ( tElement [ 0 ] , 'ui-select-choices' ) . append ( clone ) ;
34
- dropDiv . append ( choices ) ;
39
+ getElementsByClassName ( tElement [ 0 ] , 'ui-select-results' ) . append ( clone ) ;
35
40
36
41
var input = $elm . find ( 'input' ) ;
37
42
$scope . activate = function ( ) {
@@ -66,9 +71,10 @@ angular.module('ui.select', ['ui.keypress']).directive('uiSelect', function($doc
66
71
$scope . open = false ;
67
72
$scope . $select . search = "" ;
68
73
} ;
74
+ var choiceArrow = getElementsByClassName ( tElement [ 0 ] , 'ui-select-arrow' ) ;
75
+ var searchDiv = getElementsByClassName ( tElement [ 0 ] , 'ui-select-search' ) ;
69
76
var dismissClickHandler = function ( evt ) {
70
- //FIXME
71
- if ( $elm [ 0 ] !== evt . target . parentElement ) {
77
+ if ( $elm [ 0 ] !== evt . target . parentElement && choiceArrow [ 0 ] !== evt . target . parentElement && searchDiv [ 0 ] !== evt . target . parentElement ) {
72
78
$scope . close ( ) ;
73
79
$scope . $digest ( ) ;
74
80
}
0 commit comments