This repository was archived by the owner on May 29, 2019. It is now read-only.
File tree 2 files changed +54
-1
lines changed
2 files changed +54
-1
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,11 @@ angular.module('ui.bootstrap.collapse',['ui.bootstrap.transition'])
30
30
//When we have a change of scrollHeight we are setting again the correct height if the group is opened
31
31
if ( element [ 0 ] . scrollHeight !== 0 ) {
32
32
if ( ! isCollapsed ) {
33
- fixUpHeight ( scope , element , element [ 0 ] . scrollHeight + 'px' ) ;
33
+ if ( initialAnimSkip ) {
34
+ fixUpHeight ( scope , element , element [ 0 ] . scrollHeight + 'px' ) ;
35
+ } else {
36
+ fixUpHeight ( scope , element , 'auto' ) ;
37
+ }
34
38
}
35
39
}
36
40
} ) ;
Original file line number Diff line number Diff line change @@ -54,4 +54,53 @@ describe('collapse directive', function () {
54
54
$timeout . flush ( ) ;
55
55
expect ( element . height ( ) ) . not . toBe ( 0 ) ;
56
56
} ) ;
57
+
58
+ describe ( 'dynamic content' , function ( ) {
59
+ beforeEach ( function ( ) {
60
+ element = angular . element ( '<div collapse="isCollapsed"><p>Initial content</p><div ng-show="exp">Additional content</div></div>' ) ;
61
+ $compile ( element ) ( scope ) ;
62
+ angular . element ( document . body ) . append ( element ) ;
63
+ } ) ;
64
+
65
+ afterEach ( function ( ) {
66
+ element . remove ( ) ;
67
+ } ) ;
68
+
69
+ it ( 'should grow accordingly when content size inside collapse increases' , function ( ) {
70
+ scope . exp = false ;
71
+ scope . isCollapsed = false ;
72
+ scope . $digest ( ) ;
73
+ var collapseHeight = element . height ( ) ;
74
+ scope . exp = true ;
75
+ scope . $digest ( ) ;
76
+ expect ( element . height ( ) ) . toBeGreaterThan ( collapseHeight ) ;
77
+ } ) ;
78
+
79
+ it ( 'should shrink accordingly when content size inside collapse decreases' , function ( ) {
80
+ scope . exp = true ;
81
+ scope . isCollapsed = false ;
82
+ scope . $digest ( ) ;
83
+ var collapseHeight = element . height ( ) ;
84
+ scope . exp = false ;
85
+ scope . $digest ( ) ;
86
+ expect ( element . height ( ) ) . toBeLessThan ( collapseHeight ) ;
87
+ } ) ;
88
+
89
+ it ( 'should shrink accordingly when content size inside collapse decreases on subsequent use' , function ( ) {
90
+ scope . isCollapsed = false ;
91
+ scope . exp = false ;
92
+ scope . $digest ( ) ;
93
+ scope . isCollapsed = true ;
94
+ scope . $digest ( ) ;
95
+ scope . isCollapsed = false ;
96
+ scope . $digest ( ) ;
97
+ $timeout . flush ( ) ;
98
+ scope . exp = true ;
99
+ scope . $digest ( ) ;
100
+ var collapseHeight = element . height ( ) ;
101
+ scope . exp = false ;
102
+ scope . $digest ( ) ;
103
+ expect ( element . height ( ) ) . toBeLessThan ( collapseHeight ) ;
104
+ } ) ;
105
+ } ) ;
57
106
} ) ;
You can’t perform that action at this time.
0 commit comments