fix(DirectiveMetadata): add support for events, changeDetection
This commit is contained in:
@@ -24,6 +24,8 @@ export function directiveMetadataToMap(meta: DirectiveMetadata): Map<string, any
|
||||
['callOnInit', meta.callOnInit],
|
||||
['callOnChange', meta.callOnChange],
|
||||
['callOnAllChangesDone', meta.callOnAllChangesDone],
|
||||
['events', meta.events],
|
||||
['changeDetection', meta.changeDetection],
|
||||
['version', 1],
|
||||
]);
|
||||
}
|
||||
@@ -50,7 +52,9 @@ export function directiveMetadataFromMap(map: Map<string, any>): DirectiveMetada
|
||||
callOnCheck:<boolean>MapWrapper.get(map, 'callOnCheck'),
|
||||
callOnChange:<boolean>MapWrapper.get(map, 'callOnChange'),
|
||||
callOnInit:<boolean>MapWrapper.get(map, 'callOnInit'),
|
||||
callOnAllChangesDone:<boolean>MapWrapper.get(map, 'callOnAllChangesDone')
|
||||
callOnAllChangesDone:<boolean>MapWrapper.get(map, 'callOnAllChangesDone'),
|
||||
events:<List<string>>_cloneIfPresent(MapWrapper.get(map, 'events')),
|
||||
changeDetection:<string>MapWrapper.get(map, 'changeDetection'),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ class _DirectiveMetadataVisitor extends Object
|
||||
bool _callOnCheck;
|
||||
bool _callOnInit;
|
||||
bool _callOnAllChangesDone;
|
||||
String changeDetection;
|
||||
List<String> events;
|
||||
String _changeDetection;
|
||||
List<String> _events;
|
||||
|
||||
final ConstantEvaluator _evaluator = new ConstantEvaluator();
|
||||
|
||||
@@ -83,8 +83,8 @@ class _DirectiveMetadataVisitor extends Object
|
||||
_callOnCheck = false;
|
||||
_callOnInit = false;
|
||||
_callOnAllChangesDone = false;
|
||||
changeDetection = null;
|
||||
events = [];
|
||||
_changeDetection = null;
|
||||
_events = [];
|
||||
}
|
||||
|
||||
DirectiveMetadata get meta => DirectiveMetadata.create(
|
||||
@@ -100,8 +100,8 @@ class _DirectiveMetadataVisitor extends Object
|
||||
callOnCheck: _callOnCheck,
|
||||
callOnInit: _callOnInit,
|
||||
callOnAllChangesDone: _callOnAllChangesDone,
|
||||
changeDetection: changeDetection,
|
||||
events: events);
|
||||
changeDetection: _changeDetection,
|
||||
events: _events);
|
||||
|
||||
@override
|
||||
Object visitAnnotation(Annotation node) {
|
||||
@@ -145,7 +145,6 @@ class _DirectiveMetadataVisitor extends Object
|
||||
'$node' /* source */);
|
||||
}
|
||||
var keyString = '${node.name.label}';
|
||||
// TODO(kegluneq): Populate the other values in [DirectiveMetadata]
|
||||
switch (keyString) {
|
||||
case 'selector':
|
||||
_populateSelector(node.expression);
|
||||
@@ -165,6 +164,12 @@ class _DirectiveMetadataVisitor extends Object
|
||||
case 'exportAs':
|
||||
_populateExportAs(node.expression);
|
||||
break;
|
||||
case 'changeDetection':
|
||||
_populateChangeDetection(node.expression);
|
||||
break;
|
||||
case 'events':
|
||||
_populateEvents(node.expression);
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -263,4 +268,14 @@ class _DirectiveMetadataVisitor extends Object
|
||||
_callOnInit = lifecycleEvents.contains("onInit");
|
||||
_callOnAllChangesDone = lifecycleEvents.contains("onAllChangesDone");
|
||||
}
|
||||
|
||||
void _populateEvents(Expression eventsValue) {
|
||||
_checkMeta();
|
||||
_populateList(eventsValue, _events, 'Directive#events');
|
||||
}
|
||||
|
||||
void _populateChangeDetection(Expression value) {
|
||||
_checkMeta();
|
||||
_changeDetection = _expressionToString(value, 'Directive#changeDetection');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user