From 163c799effd5cfadc57990f4d4127651bae3fbdb Mon Sep 17 00:00:00 2001 From: Dhruv Manek Date: Fri, 21 Oct 2011 17:53:37 -0700 Subject: fix(angular.widget): Allow widgets to be styled in IE8 and below Closes #584 --- src/Angular.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/Angular.js') diff --git a/src/Angular.js b/src/Angular.js index 9b651fce..256a119c 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -51,6 +51,22 @@ if ('i' !== 'I'.toLowerCase()) { function fromCharCode(code) { return String.fromCharCode(code); } +/** + * Creates the element for IE8 and below to allow styling of widgets + * (http://ejohn.org/blog/html5-shiv/). This hack works only if angular is + * included synchronously at the top of the document before IE sees any + * unknown elements. See regression/issue-584.html. + * + * @param {string} elementName Name of the widget. + * @returns {string} Lowercased string. + */ +function shivForIE(elementName) { + elementName = lowercase(elementName); + if (msie < 9 && elementName.charAt(0) != '@') { // ignore attr-widgets + document.createElement(elementName); + } + return elementName; +} var _undefined = undefined, _null = null, @@ -91,7 +107,7 @@ var _undefined = undefined, /** @name angular.directive */ angularDirective = extensionMap(angular, 'directive'), /** @name angular.widget */ - angularWidget = extensionMap(angular, 'widget', lowercase), + angularWidget = extensionMap(angular, 'widget', shivForIE), /** @name angular.filter */ angularFilter = extensionMap(angular, 'filter'), /** @name angular.service */ -- cgit v1.2.3