visibleForTemplate top-level constant

_VisibleForTemplate const visibleForTemplate

Used to annotate a class, field, or method that is public for template use.

An annotated element may be referenced in the same Dart library, or in any Dart source file whose filename ends in .template.dart. Tools, such as the analyzer can provide feedback if the annotated element is used anywhere else.

This annotation is intended to be used to identify what elements of a class or library are only public (not private) because they represent state that will be referenced in the template HTML of an AngularDart component. For example:

// my_component.dart
import 'package:ngdart/angular.dart';

@Component(
  selector: 'my-comp',
  template: 'Hello {{fullName}}!',
)
class MyComponent {
  @Input()
  String firstName;

  @Input()
  String lastName;

  @visibleForTemplate
  String get fullName => '$firstName $lastName';
}

... fullName is a computed field that only exists for use in a template and is not intended to be part of the public API of the component. Another library attempting to access fullName would trigger a diagnostic:

// other_lib.dart
import 'my_component.dart';

void example(MyComponent comp) {
  // LINT
  print(comp.fullName);
}

Implementation

const visibleForTemplate = _VisibleForTemplate();