Я подумал, что это будет хорошая возможность точно узнать, как далеко я мог бы пойти с помощью директив DOM манипулирования компонентом библиотеки материалов ... чувствую, что я справился довольно хорошо, но ... я пришел к выводу, что это не будетвозможно ... это был хороший опыт обучения.
- могут быть и другие, более опытные, чем я, которые могли бы пойти дальше или даже прокомментировать лучший способ.
- но для моего уровня опыта работы с директивами я считаю, что это невозможно сделать с помощью директив / DOM
![enter image description here](https://i.stack.imgur.com/iL8OX.png)
Я избавлю вас от прохождения всех моих изменений для создания этого стекаблика и сразу выясню, почему я считаю, что это невозможно.
Ниже приведены 4 метода, используемыеpaginator для перемещения по массиву
firstPage()
previousPage()
nextPage()
lastPage()
https://github.com/angular/material2/blob/63be232283262615fa2130900c80dd570eff6cda/src/lib/paginator/paginator.html#L58
Ни один из которых не приметиндекс или значение, делающее невозможным использование кнопок 1-6 на скриншоте ... поскольку теоретически они могут использовать только один из 4 методов, описанных выше.
Мне удалось вставитькнопка 3, чтобы посмотреть, смогу ли я нажать на один из этих методов через директиву ... так как вы можете видеть, что в данный момент при нажатии выдается предупреждение.
- Мне не удалось использовать один изПриведенные выше методы не совсем уверены, как подключить это ... или если это вообще возможно.
- В свете невозможности передать значение этим методам, и не в состоянии выяснить, какСоздайте событие click и подключите его к компонентному методу через Renderer2. Я чувствую, что это невозможно.
Stackblitz
https://stackblitz.com/edit/angular-wyx2ue?embed=1&file=app/paginator-overview-example.html
В заключение
Как указанодля меня это был полезный опыт обучения с директивами ... но я думаю, что сделать брендирование страницы, отвечающей вашим требованиям, будет невозможно, и вам следует изучить альтернативную библиотеку, отвечающую вашим требованиям.