aboutsummaryrefslogtreecommitdiffstats
path: root/src/Angular.js
diff options
context:
space:
mode:
authorDhruv Manek2011-10-21 17:53:37 -0700
committerIgor Minar2011-10-24 23:28:36 -0700
commit163c799effd5cfadc57990f4d4127651bae3fbdb (patch)
treefada61b2b9be00609fbf1e9cf903e2a48cf3a0fb /src/Angular.js
parent7da70af1aefe8a147053a6a8b0890ede4245b68a (diff)
downloadangular.js-163c799effd5cfadc57990f4d4127651bae3fbdb.tar.bz2
fix(angular.widget): Allow widgets to be styled in IE8 and below
Closes #584
Diffstat (limited to 'src/Angular.js')
-rw-r--r--src/Angular.js18
1 files changed, 17 insertions, 1 deletions
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 */