2016-02-04 3 views
1

Я сейчас играю с Dart версии Angular 2.Dart Angular 2 аннотация, как они работают?

Я видел, что в библиотеке используется много метаданных, например, @Component.

Я хотел бы знать, как работают эти директивы?

Я пошел на http://www.darlang.org. Они объясняют, как определить аннотацию, но не как использовать ее для построения объекта, как это сделано в angular.io.

Может ли кто-нибудь объяснить, как работает магия?

ответ

1

В комментариях Дарт сам по себе не делает ничего, кроме существующего рядом с элементом кода, где они добавлены.

Во время выполнения:

Вы можете использовать dart:mirrors для запроса импортируемых библиотек для таких элементов, как поля, функция, классы, параметры, ... для этих аннотаций.
dart:mirrors обескуражен для приложений браузера. В этом случае вы можете использовать пакет reflectable с аналогичными возможностями.

Смотрите также:

В buildtime

Вы можете создать трансформатор и зарегистрировать его в pubspec.yaml, чтобы быть запущен pub serve и pub build.
В этом случае анализатор Дарта можно использовать для запроса исходных файлов для аннотаций и, например, Angular, изменить исходный код на этапе сборки, чтобы добавить/заменить/удалить произвольный код.

Для получения более подробной информации о трансформаторах
- https://www.dartlang.org/tools/pub/assets-and-transformers.html
- https://www.dartlang.org/tools/pub/transformers/
- https://www.dartlang.org/tools/pub/transformers/examples/ - https://www.dartlang.org/tools/pub/transformers/aggregate.html - https://pub.dartlang.org/packages/code_transformers

Смежные вопросы