Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 2a7cd9f

Browse files
committed
fix ie bug with null and orphans elements
1 parent 02fa10f commit 2a7cd9f

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

src/Angular.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,15 @@ function extensionMap(angular, name) {
9191
}
9292

9393
function jqLiteWrap(element) {
94-
if (isString(element)) {
95-
var div = document.createElement('div');
96-
div.innerHTML = element;
97-
element = new JQLite(div.childNodes);
98-
} else if (!(element instanceof JQLite) && isElement(element)) {
99-
element = new JQLite(element);
94+
// for some reasons the parentNode of an orphan looks like null but its typeof is object.
95+
if (element) {
96+
if (isString(element)) {
97+
var div = document.createElement('div');
98+
div.innerHTML = element;
99+
element = new JQLite(div.childNodes);
100+
} else if (!(element instanceof JQLite) && isElement(element)) {
101+
element = new JQLite(element);
102+
}
100103
}
101104
return element;
102105
}

src/Compiler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Compiler.prototype = {
132132
directives = false;
133133
var parent = element.parent();
134134
template.addInit(widget.call(selfApi, element));
135-
if (parent) {
135+
if (parent && parent[0]) {
136136
element = jqLite(parent[0].childNodes[elementIndex]);
137137
}
138138
}

src/jqLite.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,19 +220,25 @@ JQLite.prototype = {
220220
return this[0].innerHTML;
221221
},
222222

223-
parent: function() { return jqLite(this[0].parentNode);},
223+
parent: function() {
224+
return jqLite(this[0].parentNode);
225+
},
226+
224227
clone: function() { return jqLite(this[0].cloneNode(true)); }
225228
};
226229

227230
if (msie) {
228231
extend(JQLite.prototype, {
229232
text: function(value) {
230233
var e = this[0];
231-
if (isDefined(value)) {
232-
e.innerText = value;
233-
}
234234
// NodeType == 3 is text node
235-
return e.nodeType == 3 ? e.nodeValue : e.innerText;
235+
if (e.nodeType == 3) {
236+
if (isDefined(value)) e.nodeValue = value;
237+
return e.nodeValue;
238+
} else {
239+
if (isDefined(value)) e.innerText = value;
240+
return e.innerText;
241+
}
236242
},
237243

238244
trigger: function(type) {

0 commit comments

Comments
 (0)