feat(view): reimplemented property setters using change detection
This commit is contained in:
@ -45,7 +45,7 @@ class _DirectiveMetadataVisitor extends Object
|
||||
compileChildren: false,
|
||||
properties: {},
|
||||
hostListeners: {},
|
||||
setters: [],
|
||||
hostProperties: {},
|
||||
readAttributes: []);
|
||||
super.visitInstanceCreationExpression(node);
|
||||
}
|
||||
@ -76,6 +76,9 @@ class _DirectiveMetadataVisitor extends Object
|
||||
case 'properties':
|
||||
_populateProperties(node.expression);
|
||||
break;
|
||||
case 'hostProperties':
|
||||
_populateHostProperties(node.expression);
|
||||
break;
|
||||
case 'hostListeners':
|
||||
_populateHostListeners(node.expression);
|
||||
}
|
||||
@ -135,4 +138,19 @@ class _DirectiveMetadataVisitor extends Object
|
||||
meta.hostListeners[sKey] = sVal;
|
||||
}
|
||||
}
|
||||
|
||||
void _populateHostProperties(Expression hostPropertyValue) {
|
||||
if (hostPropertyValue is! MapLiteral) {
|
||||
logger.error('Angular 2 currently only supports map literal values for '
|
||||
'Directive#hostProperties.'
|
||||
' Source: ${hostPropertyValue}');
|
||||
return;
|
||||
}
|
||||
for (MapLiteralEntry entry in (hostPropertyValue as MapLiteral).entries) {
|
||||
var sKey = _expressionToString(entry.key, 'Directive#hostProperties keys');
|
||||
var sVal =
|
||||
_expressionToString(entry.value, 'Directive#hostProperties values');
|
||||
meta.hostProperties[sKey] = sVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user