mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-04-04 23:30:24 +00:00
fix(ngView): IE8 regression due to expando on non-element nodes
This fixes the "TypeError: Object doesn't support this property or method" error on IE8, when view templates contain leading white-space. Closes #3971
This commit is contained in:
parent
88317a2888
commit
255e8c13cf
2 changed files with 7 additions and 4 deletions
|
|
@ -223,7 +223,7 @@ function ngViewFactory( $route, $anchorScroll, $compile, $controller,
|
|||
currentScope[current.controllerAs] = controller;
|
||||
}
|
||||
clone.data('$ngControllerController', controller);
|
||||
clone.contents().data('$ngControllerController', controller);
|
||||
clone.children().data('$ngControllerController', controller);
|
||||
}
|
||||
|
||||
link(currentScope);
|
||||
|
|
|
|||
|
|
@ -455,7 +455,7 @@ describe('ngView', function() {
|
|||
});
|
||||
|
||||
|
||||
it('should set $scope and $controllerController on the view', function() {
|
||||
it('should set $scope and $controllerController on the view elements (except for non-element nodes)', function() {
|
||||
function MyCtrl($scope) {
|
||||
$scope.state = 'WORKS';
|
||||
$scope.ctrl = this;
|
||||
|
|
@ -466,11 +466,14 @@ describe('ngView', function() {
|
|||
});
|
||||
|
||||
inject(function($templateCache, $location, $rootScope, $route) {
|
||||
$templateCache.put('tpl.html', [200, '<div>{{state}}</div>', {}]);
|
||||
// in the template the white-space before the div is an intentional non-element node,
|
||||
// a text might get wrapped into span so it's safer to just use white space
|
||||
$templateCache.put('tpl.html', [200, ' \n <div>{{state}}</div>', {}]);
|
||||
|
||||
$location.url('/foo');
|
||||
$rootScope.$digest();
|
||||
expect(element.text()).toEqual('WORKS');
|
||||
// using toMatch because in IE8+jquery the space doesn't get preserved. jquery bug?
|
||||
expect(element.text()).toMatch(/\s*WORKS/);
|
||||
|
||||
var div = element.find('div');
|
||||
expect(div.parent()[0].nodeName.toUpperCase()).toBeOneOf('NG:VIEW', 'VIEW');
|
||||
|
|
|
|||
Loading…
Reference in a new issue