diff --git a/lib/tools/transformer/expression_generator.dart b/lib/tools/transformer/expression_generator.dart index 1133e6d7e..345cd7b6e 100644 --- a/lib/tools/transformer/expression_generator.dart +++ b/lib/tools/transformer/expression_generator.dart @@ -84,8 +84,7 @@ class ExpressionGenerator extends Transformer with ResolverTransformer { .toList(); // Get all of the contents of templates in @Component(templateUrl:'...') - gatherReferencedUris(transform, resolver, options, - templatesOnly: true).then((templates) { + gatherReferencedUris(transform, resolver, options).then((templates) { templates.values.forEach(controller.add); }).then((_) { // Add any HTML files referencing this Dart file. diff --git a/test/tools/transformer/expression_generator_spec.dart b/test/tools/transformer/expression_generator_spec.dart index 874378110..6b00634a0 100644 --- a/test/tools/transformer/expression_generator_spec.dart +++ b/test/tools/transformer/expression_generator_spec.dart @@ -92,6 +92,33 @@ main() { symbols: []); }); + it('should follow template cache uris', () { + return generates(phases, + inputs: { + 'a|web/main.dart': ''' + import 'package:angular/angular.dart'; + import 'package:angular/cacheAnnotation.dart'; + + @NgTemplateCache( + preCacheUrls: ['lib/foo.html', 'packages/b/bar.html']) + class FooClass {} + + main() {} + ''', + 'a|lib/foo.html': ''' +
{{template.contents}}
''', + 'b|lib/bar.html': ''' +
{{bar}}
''', + 'a|web/index.html': ''' + ''', + 'angular|lib/angular.dart': libAngular, + 'angular|lib/cacheAnnotation.dart': libCacheAnnotation, + }, + getters: ['template', 'contents', 'bar'], + setters: ['template', 'contents', 'bar'], + symbols: []); + }); + it('should generate expressions for variables found in superclass', () { return generates(phases, inputs: { @@ -248,3 +275,11 @@ class NgAttr { const NgAttr(String attrName); } '''; + +const String libCacheAnnotation = ''' +library angular.template_cache_annotation; + +class NgTemplateCache { + const NgTemplateCache({List preCacheUrls, bool cache}); +} +''';