Skip to content

Commit d9fc724

Browse files
committed
fix(component): revert regression of injecting Element/Node into Component
1 parent 4e4415e commit d9fc724

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

lib/core_dom/event_handler.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,11 @@ class EventHandler {
100100
return part.replaceAll("-", "");
101101
}
102102
}
103+
104+
@NgInjectableService()
105+
class _ShadowRootEventHandler extends EventHandler {
106+
_ShadowRootEventHandler(dom.ShadowRoot shadowRoot,
107+
Expando expando,
108+
ExceptionHandler exceptionHandler)
109+
: super(shadowRoot, expando, exceptionHandler);
110+
}

lib/core_dom/view_factory.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,10 @@ class _ComponentFactory implements Function {
231231
var shadowModule = new Module()
232232
..type(type)
233233
..type(NgElement)
234-
..type(EventHandler)
234+
..type(EventHandler, implementedBy: _ShadowRootEventHandler)
235235
..value(Scope, shadowScope)
236236
..value(TemplateLoader, templateLoader)
237237
..value(dom.ShadowRoot, shadowDom)
238-
..value(dom.Element, null)
239-
..value(dom.Node, shadowDom)
240238
..factory(ElementProbe, (_) => probe);
241239
shadowInjector = injector.createChild([shadowModule], name: _SHADOW);
242240
probe = _expando[shadowDom] = new ElementProbe(

test/core_dom/compiler_spec.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ void main() {
217217
..type(SimpleAttachComponent)
218218
..type(SimpleComponent)
219219
..type(ExprAttrComponent)
220+
..type(LogElementComponent)
220221
..type(SayHelloFilter);
221222
});
222223

@@ -521,6 +522,13 @@ void main() {
521522

522523
expect(logger).toEqual(['SimpleAttachComponent']);
523524
}));
525+
526+
it('should inject compenent element as the dom.Element', async((Logger log, TestBed _, MockHttpBackend backend) {
527+
backend.whenGET('foo.html').respond('<div>WORKED</div>');
528+
_.compile('<log-element></log-element>');
529+
Element element = _.rootElement;
530+
expect(log).toEqual([element, element, element.shadowRoot]);
531+
}));
524532
});
525533

526534
describe('invalid components', () {
@@ -941,3 +949,15 @@ class SimpleAttachComponent implements NgAttachAware, NgShadowRootAware {
941949
attach() => logger('attach');
942950
onShadowRoot(_) => logger('onShadowRoot');
943951
}
952+
953+
@NgComponent(
954+
selector: 'log-element',
955+
templateUrl: 'foo.html')
956+
class LogElementComponent{
957+
LogElementComponent(Logger logger, Element element, Node node,
958+
ShadowRoot shadowRoot) {
959+
logger(element);
960+
logger(node);
961+
logger(shadowRoot);
962+
}
963+
}

0 commit comments

Comments
 (0)