Angular 9: создать пользовательскую директиву, которая использует другие стандартные директивы - PullRequest
1 голос
/ 07 марта 2020

Я работаю над небольшой платформой, основанной на Angular / Material 9. Я хочу создать пользовательские директивы, которые применяют стандартные директивы Material к их элементу host. Для некоторых элементов пользовательского интерфейса я предпочитаю использовать директивы вместо создания пользовательских компонентов-оболочек (используя ng-контент). Например, для кнопок я хочу использовать директиву «custom-button», например:

<button type="button" custom-button>Hello world!</button>

Директива должна применять стандартные директивы Material (и некоторые другие атрибуты тоже) для кнопок на элемент хоста. Отображаемая кнопка HTML должна иметь вид:

<button type="button" custom-button mat-button mat-raised-button color="accent">Hello world!</button>

Я знаю, как установить свойства / атрибуты, но, очевидно, кнопка не действует как «настоящая» кнопка-мат ( не имеет пользовательских внутренних элементов, добавленных Material, ни для эффекта ряби). Я довольно новичок с Angular, поэтому я много искал ответа. Но я нашел только очень сложные или устаревшие решения (AngularJS). Любая помощь?

...