fix(compiler): resolver should merge host bindings and listeners (#13474)

fixes #13327
This commit is contained in:
Alex Rickabaugh
2016-12-14 14:31:57 -08:00
committed by Victor Berchet
parent af62050729
commit 6aeaca3fb4
2 changed files with 39 additions and 10 deletions

View File

@ -75,9 +75,8 @@ export class DirectiveResolver {
outputs.push(propName);
}
}
const hostBinding =
ListWrapper.findLast(propertyMetadata[propName], (a) => a instanceof HostBinding);
if (hostBinding) {
const hostBindings = propertyMetadata[propName].filter(a => a && a instanceof HostBinding);
hostBindings.forEach(hostBinding => {
if (hostBinding.hostPropertyName) {
const startWith = hostBinding.hostPropertyName[0];
if (startWith === '(') {
@ -90,13 +89,12 @@ export class DirectiveResolver {
} else {
host[`[${propName}]`] = propName;
}
}
const hostListener =
ListWrapper.findLast(propertyMetadata[propName], (a) => a instanceof HostListener);
if (hostListener) {
});
const hostListeners = propertyMetadata[propName].filter(a => a && a instanceof HostListener)
hostListeners.forEach(hostListener => {
const args = hostListener.args || [];
host[`(${hostListener.eventName})`] = `${propName}(${args.join(',')})`;
}
});
const query = ListWrapper.findLast(propertyMetadata[propName], (a) => a instanceof Query);
if (query) {
queries[propName] = query;