aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorElliott Sprehn2010-10-05 07:08:18 +0800
committerMisko Hevery2010-10-05 07:12:13 +0800
commit8e40e7070d44d11332adc1426b7076c2be570b2b (patch)
treea156cf8f4d9ef8adc4b3d0e5f7ca6ebc031c72ea /src
parent81052d4a6269b25885bb3d9642fdf399cc1684e6 (diff)
downloadangular.js-8e40e7070d44d11332adc1426b7076c2be570b2b.tar.bz2
Fix bug in IE where clone removes whitespace nodes.
Diffstat (limited to 'src')
-rw-r--r--src/Angular.js4
-rw-r--r--src/directives.js2
-rw-r--r--src/widgets.js2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 3e53c755..f7351bdc 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -153,6 +153,10 @@ if (msie) {
};
}
+function quickClone(element) {
+ return jqLite(element[0].cloneNode(true));
+}
+
function isVisible(element) {
var rect = element[0].getBoundingClientRect(),
width = (rect.width || (rect.right||0 - rect.left||0)),
diff --git a/src/directives.js b/src/directives.js
index 4443cc9d..d2d3bf2c 100644
--- a/src/directives.js
+++ b/src/directives.js
@@ -176,7 +176,7 @@ angularWidget("@ng:repeat", function(expression, element){
if (keyIdent) childScope[keyIdent] = key;
} else {
// grow children
- childScope = template(element.clone(), createScope(currentScope));
+ childScope = template(quickClone(element), createScope(currentScope));
childScope[valueIdent] = collection[key];
if (keyIdent) childScope[keyIdent] = key;
lastElement.after(childScope.$element);
diff --git a/src/widgets.js b/src/widgets.js
index 24eba900..127718ce 100644
--- a/src/widgets.js
+++ b/src/widgets.js
@@ -320,7 +320,7 @@ var ngSwitch = angularWidget('ng:switch', function (element){
childScope = createScope(scope);
foreach(cases, function(switchCase){
if (switchCase.when(childScope, value)) {
- var caseElement = switchCase.element.clone();
+ var caseElement = quickClone(switchCase.element);
element.append(caseElement);
childScope.$tryEval(switchCase.change, element);
switchCase.template(caseElement, childScope);