@@ -65,7 +65,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
65
65
} ;
66
66
} ] )
67
67
68
- . controller ( 'UibDropdownController' , [ '$scope' , '$attrs' , '$parse' , 'uibDropdownConfig' , 'uibDropdownService' , '$animate' , '$uibPosition' , '$document' , '$compile' , '$templateRequest' , function ( $scope , $attrs , $parse , dropdownConfig , uibDropdownService , $animate , $position , $document , $compile , $templateRequest ) {
68
+ . controller ( 'UibDropdownController' , [ '$scope' , '$element' , '$ attrs', '$parse' , 'uibDropdownConfig' , 'uibDropdownService' , '$animate' , '$uibPosition' , '$document' , '$compile' , '$templateRequest' , function ( $scope , $element , $attrs , $parse , dropdownConfig , uibDropdownService , $animate , $position , $document , $compile , $templateRequest ) {
69
69
var self = this ,
70
70
scope = $scope . $new ( ) , // create a child scope so we are not polluting original one
71
71
templateScope ,
@@ -77,9 +77,10 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
77
77
keynavEnabled = false ,
78
78
selectedOption = null ;
79
79
80
- this . init = function ( element ) {
81
- self . $element = element ;
82
80
81
+ $element . addClass ( 'dropdown' ) ;
82
+
83
+ this . init = function ( ) {
83
84
if ( $attrs . isOpen ) {
84
85
getIsOpen = $parse ( $attrs . isOpen ) ;
85
86
setIsOpen = getIsOpen . assign ;
@@ -94,7 +95,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
94
95
95
96
if ( appendToBody && self . dropdownMenu ) {
96
97
$document . find ( 'body' ) . append ( self . dropdownMenu ) ;
97
- element . on ( '$destroy' , function handleDestroyEvent ( ) {
98
+ $ element. on ( '$destroy' , function handleDestroyEvent ( ) {
98
99
self . dropdownMenu . remove ( ) ;
99
100
} ) ;
100
101
}
@@ -118,7 +119,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
118
119
} ;
119
120
120
121
scope . getElement = function ( ) {
121
- return self . $element ;
122
+ return $element ;
122
123
} ;
123
124
124
125
scope . isKeynavEnabled = function ( ) {
@@ -128,7 +129,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
128
129
scope . focusDropdownEntry = function ( keyCode ) {
129
130
var elems = self . dropdownMenu ? //If append to body is used.
130
131
( angular . element ( self . dropdownMenu ) . find ( 'a' ) ) :
131
- ( angular . element ( self . $element ) . find ( 'ul' ) . eq ( 0 ) . find ( 'a' ) ) ;
132
+ ( angular . element ( $element ) . find ( 'ul' ) . eq ( 0 ) . find ( 'a' ) ) ;
132
133
133
134
switch ( keyCode ) {
134
135
case ( 40 ) : {
@@ -166,7 +167,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
166
167
167
168
scope . $watch ( 'isOpen' , function ( isOpen , wasOpen ) {
168
169
if ( appendToBody && self . dropdownMenu ) {
169
- var pos = $position . positionElements ( self . $element , self . dropdownMenu , 'bottom-left' , true ) ;
170
+ var pos = $position . positionElements ( $element , self . dropdownMenu , 'bottom-left' , true ) ;
170
171
var css = {
171
172
top : pos . top + 'px' ,
172
173
display : isOpen ? 'block' : 'none'
@@ -178,13 +179,13 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
178
179
css . right = 'auto' ;
179
180
} else {
180
181
css . left = 'auto' ;
181
- css . right = ( window . innerWidth - ( pos . left + self . $element . prop ( 'offsetWidth' ) ) ) + 'px' ;
182
+ css . right = ( window . innerWidth - ( pos . left + $element . prop ( 'offsetWidth' ) ) ) + 'px' ;
182
183
}
183
184
184
185
self . dropdownMenu . css ( css ) ;
185
186
}
186
187
187
- $animate [ isOpen ? 'addClass' : 'removeClass' ] ( self . $element , openClass ) . then ( function ( ) {
188
+ $animate [ isOpen ? 'addClass' : 'removeClass' ] ( $element , openClass ) . then ( function ( ) {
188
189
if ( angular . isDefined ( isOpen ) && isOpen !== wasOpen ) {
189
190
toggleInvoker ( $scope , { open : ! ! isOpen } ) ;
190
191
}
@@ -239,8 +240,7 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
239
240
return {
240
241
controller : 'UibDropdownController' ,
241
242
link : function ( scope , element , attrs , dropdownCtrl ) {
242
- dropdownCtrl . init ( element ) ;
243
- element . addClass ( 'dropdown' ) ;
243
+ dropdownCtrl . init ( ) ;
244
244
}
245
245
} ;
246
246
} )
@@ -254,6 +254,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
254
254
return ;
255
255
}
256
256
257
+ element . addClass ( 'dropdown-menu' ) ;
258
+
257
259
var tplUrl = attrs . templateUrl ;
258
260
if ( tplUrl ) {
259
261
dropdownCtrl . dropdownMenuTemplateUrl = tplUrl ;
@@ -356,13 +358,14 @@ angular.module('ui.bootstrap.dropdown')
356
358
angular . extend ( this , uibDropdownService ) ;
357
359
} ] )
358
360
359
- . controller ( 'DropdownController' , [ '$scope' , '$attrs' , '$log' , '$dropdownSuppressWarning' , '$controller' , function ( $scope , $attrs , $log , $dropdownSuppressWarning , $controller ) {
361
+ . controller ( 'DropdownController' , [ '$scope' , '$element' , '$ attrs', '$log' , '$dropdownSuppressWarning' , '$controller' , function ( $scope , $element , $attrs , $log , $dropdownSuppressWarning , $controller ) {
360
362
if ( ! $dropdownSuppressWarning ) {
361
363
$log . warn ( 'DropdownController is now deprecated. Use UibDropdownController instead.' ) ;
362
364
}
363
365
364
366
angular . extend ( this , $controller ( 'UibDropdownController' , {
365
367
$scope : $scope ,
368
+ $element : $element ,
366
369
$attrs : $attrs
367
370
} ) ) ;
368
371
} ] )
@@ -375,8 +378,7 @@ angular.module('ui.bootstrap.dropdown')
375
378
$log . warn ( 'dropdown is now deprecated. Use uib-dropdown instead.' ) ;
376
379
}
377
380
378
- dropdownCtrl . init ( element ) ;
379
- element . addClass ( 'dropdown' ) ;
381
+ dropdownCtrl . init ( ) ;
380
382
}
381
383
} ;
382
384
} ] )
@@ -394,6 +396,8 @@ angular.module('ui.bootstrap.dropdown')
394
396
return ;
395
397
}
396
398
399
+ element . addClass ( 'dropdown-menu' ) ;
400
+
397
401
var tplUrl = attrs . templateUrl ;
398
402
if ( tplUrl ) {
399
403
dropdownCtrl . dropdownMenuTemplateUrl = tplUrl ;
0 commit comments