diff options
| author | Elliott Sprehn | 2010-10-05 07:08:18 +0800 | 
|---|---|---|
| committer | Misko Hevery | 2010-10-05 07:12:13 +0800 | 
| commit | 8e40e7070d44d11332adc1426b7076c2be570b2b (patch) | |
| tree | a156cf8f4d9ef8adc4b3d0e5f7ca6ebc031c72ea | |
| parent | 81052d4a6269b25885bb3d9642fdf399cc1684e6 (diff) | |
| download | angular.js-8e40e7070d44d11332adc1426b7076c2be570b2b.tar.bz2 | |
Fix bug in IE where clone removes whitespace nodes.
| -rw-r--r-- | src/Angular.js | 4 | ||||
| -rw-r--r-- | src/directives.js | 2 | ||||
| -rw-r--r-- | src/widgets.js | 2 | 
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);  | 
