@@ -36,46 +36,45 @@ angular.module('ui.select', [])
36
36
require : [ 'uiSelect' , 'ngModel' ] ,
37
37
transclude : true ,
38
38
scope : true ,
39
- controllerAs : 'uiSelectCtrl ' ,
39
+ controllerAs : '$select ' ,
40
40
41
41
controller : [ '$scope' , '$element' , '$attrs' , function ( $scope , $element , $attrs ) {
42
42
var ctrl = this ;
43
43
44
- this . activate = function ( $event ) {
45
- $scope . open = true ;
44
+ ctrl . open = false ;
45
+
46
+ ctrl . activate = function ( $event ) {
47
+ ctrl . open = true ;
46
48
// Give it time to appear before focus
47
49
$timeout ( function ( ) {
48
50
ctrl . input [ 0 ] . focus ( ) ;
49
51
} ) ;
50
52
} ;
51
53
52
- this . select = function ( item ) {
53
- $scope . $select . selected = item ;
54
- this . close ( ) ;
54
+ ctrl . select = function ( item ) {
55
+ ctrl . selected = item ;
56
+ ctrl . close ( ) ;
55
57
// Using a watch instead of $scope.ngModel.$setViewValue(item)
56
58
} ;
57
59
58
- this . close = function ( ) {
59
- $scope . open = false ;
60
- $scope . $select . search = "" ;
60
+ ctrl . close = function ( ) {
61
+ ctrl . open = false ;
62
+ ctrl . search = "" ;
61
63
} ;
62
64
63
- this . input = $element . find ( 'input' ) ; // TODO could break if input is at other template
65
+ ctrl . input = $element . find ( 'input' ) ; // TODO could break if input is at other template
64
66
} ] ,
65
67
66
68
link : function ( scope , element , attrs , controllers , transcludeFn ) {
67
- scope . open = false ;
68
- scope . $select = { } ; // Namespace
69
-
70
- var uiSelectCtrl = controllers [ 0 ] ;
69
+ var $select = controllers [ 0 ] ;
71
70
var ngModelCtrl = controllers [ 1 ] ;
72
71
73
72
scope . $watch ( '$select.selected' , function ( newVal , oldVal ) {
74
73
if ( ngModelCtrl . $viewValue !== newVal ) ngModelCtrl . $setViewValue ( newVal ) ;
75
74
} ) ;
76
75
77
76
ngModelCtrl . $render = function ( ) {
78
- scope . $select . selected = ngModelCtrl . $viewValue ;
77
+ $select . selected = ngModelCtrl . $viewValue ;
79
78
} ;
80
79
81
80
// See Click everywhere but here event http://stackoverflow.com/questions/12931369/click-everywhere-but-here-event
@@ -91,7 +90,7 @@ angular.module('ui.select', [])
91
90
}
92
91
93
92
if ( ! contains ) {
94
- uiSelectCtrl . close ( ) ;
93
+ $select . close ( ) ;
95
94
scope . $digest ( ) ;
96
95
}
97
96
} ) ;
@@ -139,9 +138,9 @@ angular.module('ui.select', [])
139
138
tElement . querySelectorAll ( '.ui-select-choices-row' )
140
139
. attr ( "ng-repeat" , 'item in ' + tAttrs . data )
141
140
. attr ( "ng-mouseenter" , '$select.activeIdx=$index' )
142
- . attr ( "ng-click" , 'uiSelectCtrl .select(item)' ) ;
141
+ . attr ( "ng-click" , '$select .select(item)' ) ;
143
142
144
- return function ( scope , element , attrs , uiSelectCtrl ) {
143
+ return function ( scope , element , attrs , $select ) {
145
144
146
145
scope . trustAsHtml = function ( value ) {
147
146
return $sce . trustAsHtml ( value ) ;
@@ -168,7 +167,7 @@ angular.module('ui.select', [])
168
167
} ) ;
169
168
170
169
// Bind keyboard events related to choices
171
- uiSelectCtrl . input . on ( 'keydown' , function ( evt ) {
170
+ $select . input . on ( 'keydown' , function ( evt ) {
172
171
173
172
if ( HOT_KEYS . indexOf ( evt . which ) === - 1 ) return ; // Exit on regular key
174
173
evt . preventDefault ( ) ;
@@ -194,14 +193,14 @@ angular.module('ui.select', [])
194
193
195
194
} else if ( evt . which === 27 ) { // esc(27)
196
195
evt . stopPropagation ( ) ;
197
- uiSelectCtrl . close ( ) ;
196
+ $select . close ( ) ;
198
197
scope . $digest ( ) ;
199
198
200
199
}
201
200
} ) ;
202
201
203
202
scope . $on ( '$destroy' , function ( ) {
204
- uiSelectCtrl . input . off ( 'keydown' ) ;
203
+ $select . input . off ( 'keydown' ) ;
205
204
} ) ;
206
205
207
206
} ;
@@ -236,12 +235,12 @@ angular.module('ui.select', [])
236
235
237
236
angular . module ( 'ui.select' ) . run ( [ '$templateCache' , function ( $templateCache ) {
238
237
$templateCache . put ( 'bootstrap/choices.tpl.html' , '<ul class="ui-select-choices ui-select-choices-content dropdown-menu" role="menu" aria-labelledby="dLabel"> <li class="ui-select-choices-row" ng-class="{active: $select.activeIdx==$index}"> <a ng-transclude></a> </li> </ul> ' ) ;
239
- $templateCache . put ( 'bootstrap/match.tpl.html' , '<a class="btn btn-default ui-select-match" ng-hide="open" ng-class="{\'text-success\': $select.selected==undefined}" ng-click="uiSelectCtrl .activate($event)"> <span ng-hide="$select.selected" class="text-muted">{{placeholder}}</span> <span ng-show="$select.selected" ng-transclude></span> <span class="caret"></span> </a> ' ) ;
240
- $templateCache . put ( 'bootstrap/select.tpl.html' , '<div class="dropdown" ng-class="{open:open}"> <div class="ui-select-match" ng-click="uiSelectCtrl .activate($event)"></div> <input type="text" class="form-control ui-select-search" autocomplete="off" tabindex="" placeholder="{{placeholder}}" ng-model="$select.search" ng-show="open"> <div class="ui-select-choices"></div> </div> ' ) ;
238
+ $templateCache . put ( 'bootstrap/match.tpl.html' , '<a class="btn btn-default ui-select-match" ng-hide="$select. open" ng-class="{\'text-success\': $select.selected==undefined}" ng-click="$select .activate($event)"> <span ng-hide="$select.selected" class="text-muted">{{placeholder}}</span> <span ng-show="$select.selected" ng-transclude></span> <span class="caret"></span> </a> ' ) ;
239
+ $templateCache . put ( 'bootstrap/select.tpl.html' , '<div class="dropdown" ng-class="{open:$select. open}"> <div class="ui-select-match" ng-click="$select .activate($event)"></div> <input type="text" class="form-control ui-select-search" autocomplete="off" tabindex="" placeholder="{{placeholder}}" ng-model="$select.search" ng-show="$select. open"> <div class="ui-select-choices"></div> </div> ' ) ;
241
240
$templateCache . put ( 'select2/choices.tpl.html' , '<ul class="ui-select-choices ui-select-choices-content select2-results"> <li class="ui-select-choices-row" ng-class="{\'select2-highlighted\': $select.activeIdx==$index}"> <div class="select2-result-label" ng-transclude></div> </li> </ul> ' ) ;
242
- $templateCache . put ( 'select2/match.tpl.html' , '<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.selected==undefined}" ng-click="uiSelectCtrl .activate($event)"> <span ng-hide="$select.selected" class="select2-chosen">{{placeholder}}</span> <span ng-show="$select.selected" class="select2-chosen" ng-transclude></span> <span class="select2-arrow"><b></b></span> </a> ' ) ;
243
- $templateCache . put ( 'select2/select.tpl.html' , '<div class="select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open\': open}"> <div class="ui-select-match"></div> <div ng-class="{\'select2-display-none\': !open}" class="select2-drop select2-with-searchbox select2-drop-active"> <div class="select2-search"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search select2-input" ng-model="$select.search"> </div> <div class="ui-select-choices"></div> </div> </div> ' ) ;
244
- $templateCache . put ( 'selectize/choices.tpl.html' , '<div ng-show="open" class="ui-select-choices selectize-dropdown single"> <div class="ui-select-choices-content selectize-dropdown-content"> <div class="ui-select-choices-row" ng-class="{\'active\': $select.activeIdx==$index}" ng-click="$select(item)" ng-mouseenter="$select.index=$index"> <div class="option" data-selectable ng-transclude></div> </div> </div> </div> ' ) ;
245
- $templateCache . put ( 'selectize/match.tpl.html' , '<div ng-hide="open || !$select.selected" class="ui-select-match" ng-transclude></div> ' ) ;
246
- $templateCache . put ( 'selectize/select.tpl.html' , '<div class="selectize-control single"> <div class="selectize-input" ng-class="{\'focus\': open}" ng-click="uiSelectCtrl .activate($event)"> <div class="ui-select-match"></div> <input type="text" class="ui-select-search" autocomplete="off" tabindex="" placeholder="{{placeholder}}" ng-model="$select.search" ng-hide="$select.selected && !open"> </div> <div class="ui-select-choices"></div> </div> ' ) ;
241
+ $templateCache . put ( 'select2/match.tpl.html' , '<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.selected==undefined}" ng-click="$select .activate($event)"> <span ng-hide="$select.selected" class="select2-chosen">{{placeholder}}</span> <span ng-show="$select.selected" class="select2-chosen" ng-transclude></span> <span class="select2-arrow"><b></b></span> </a> ' ) ;
242
+ $templateCache . put ( 'select2/select.tpl.html' , '<div class="select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open\': $select. open}"> <div class="ui-select-match"></div> <div ng-class="{\'select2-display-none\': !$select. open}" class="select2-drop select2-with-searchbox select2-drop-active"> <div class="select2-search"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search select2-input" ng-model="$select.search"> </div> <div class="ui-select-choices"></div> </div> </div> ' ) ;
243
+ $templateCache . put ( 'selectize/choices.tpl.html' , '<div ng-show="$select. open" class="ui-select-choices selectize-dropdown single"> <div class="ui-select-choices-content selectize-dropdown-content"> <div class="ui-select-choices-row" ng-class="{\'active\': $select.activeIdx==$index}" ng-click="$select(item)" ng-mouseenter="$select.index=$index"> <div class="option" data-selectable ng-transclude></div> </div> </div> </div> ' ) ;
244
+ $templateCache . put ( 'selectize/match.tpl.html' , '<div ng-hide="$select. open || !$select.selected" class="ui-select-match" ng-transclude></div> ' ) ;
245
+ $templateCache . put ( 'selectize/select.tpl.html' , '<div class="selectize-control single"> <div class="selectize-input" ng-class="{\'focus\': $select. open}" ng-click="$select .activate($event)"> <div class="ui-select-match"></div> <input type="text" class="ui-select-search" autocomplete="off" tabindex="" placeholder="{{placeholder}}" ng-model="$select.search" ng-hide="$select.selected && !$select. open"> </div> <div class="ui-select-choices"></div> </div> ' ) ;
247
246
} ] ) ;
0 commit comments