mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix(ngView): ensure ngClass works with together with ngView's transclusion behavior
Closes: #3727
This commit is contained in:
parent
36ad40b18c
commit
40c0220c47
2 changed files with 41 additions and 0 deletions
|
|
@ -176,6 +176,7 @@ function ngViewFactory( $route, $anchorScroll, $compile, $controller,
|
|||
return {
|
||||
restrict: 'ECA',
|
||||
terminal: true,
|
||||
priority: 1000,
|
||||
transclude: 'element',
|
||||
compile: function(element, attr, linker) {
|
||||
return function(scope, $element, attr) {
|
||||
|
|
|
|||
|
|
@ -600,6 +600,46 @@ describe('ngView animations', function() {
|
|||
expect(itemA).not.toEqual(itemB);
|
||||
var itemB = $animate.flushNext('enter').element;
|
||||
}));
|
||||
|
||||
it('should render ngClass on ngView',
|
||||
inject(function($compile, $rootScope, $templateCache, $animate, $location, $timeout) {
|
||||
|
||||
var item;
|
||||
$rootScope.tpl = 'one';
|
||||
$rootScope.klass = 'classy';
|
||||
element = $compile(html('<div><div ng-view ng-class="klass"></div></div>'))($rootScope);
|
||||
$rootScope.$digest();
|
||||
|
||||
$location.path('/foo');
|
||||
$rootScope.$digest();
|
||||
|
||||
item = $animate.flushNext('enter').element;
|
||||
|
||||
$animate.flushNext('addClass').element;
|
||||
$animate.flushNext('addClass').element;
|
||||
|
||||
expect(item.hasClass('classy')).toBe(true);
|
||||
|
||||
$rootScope.klass = 'boring';
|
||||
$rootScope.$digest();
|
||||
|
||||
$animate.flushNext('removeClass').element;
|
||||
$animate.flushNext('addClass').element;
|
||||
|
||||
expect(item.hasClass('classy')).toBe(false);
|
||||
expect(item.hasClass('boring')).toBe(true);
|
||||
|
||||
$location.path('/bar');
|
||||
$rootScope.$digest();
|
||||
|
||||
$animate.flushNext('leave').element;
|
||||
item = $animate.flushNext('enter').element;
|
||||
|
||||
$animate.flushNext('addClass').element;
|
||||
$animate.flushNext('addClass').element;
|
||||
|
||||
expect(item.hasClass('boring')).toBe(true);
|
||||
}));
|
||||
});
|
||||
|
||||
it('should not double compile when the route changes', function() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue