Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 441daf7

Browse files
committed
feat(spec): Ignore ng-binding classes in html()
1 parent d665209 commit 441daf7

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

test/_specs.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,17 @@ class JQuery extends DelegatingList<Node> {
177177
_toHtml(node, [bool outer = false]) {
178178
if (node is Comment) {
179179
return '<!--${node.text}-->';
180+
} else if (node is Element) {
181+
// Remove all the "ng-binding" internal classes
182+
node = node.clone(true) as Element;
183+
node.queryAll(".ng-binding").forEach((Element e) {
184+
e.classes.remove('ng-binding');
185+
});
186+
var htmlString = outer ? node.outerHtml : node.innerHtml;
187+
// Strip out empty class attributes. This seems like a Dart bug...
188+
return htmlString.replaceAll(' class=""', '');
180189
} else {
181-
return outer ? node.outerHtml : node.innerHtml;
190+
throw "JQuery._toHtml not implemented for node type [${node.nodeType}]";
182191
}
183192
}
184193

test/_specs_spec.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ main() {
3030
expect(div.html()).toEqual('');
3131
});
3232

33+
it('should strip ng-binding', () {
34+
var div = $('<div><span class="ng-binding"></span></div>');
35+
expect(div.html()).toEqual('<span></span>');
36+
});
37+
3338
it('set', (){
3439
var div = $('<div>');
3540
expect(div.html('text')).toBe(div);

0 commit comments

Comments
 (0)