Возможно, этот ответ может быть комментарием, но из-за ограничения размера текста и видимости, я пишу его здесь.
Плохая новость заключается в том, что сейчас нет официального способа сделать это изначально предоставленным Material.
Но хорошая новость в том, что я нашел хороший обходной путь . Я объясняю вам, как мне это удается ниже :
Реализация стандартного меню этого материала (см. Последний пример внизу страницы на стекаблице) в вашем приложении **, например этот живой пример управлять значением isExpanded
с его относительным значком / исключением текста
Затем используйте директиву ngClass , чтобы условно добавить пользовательский класс к значению isExpanded
, которое установит width
в N px !important
, где "N" - это пользовательское значение.
!important
необходимо для переопределения значений по умолчанию.
Теперь самая сложная часть - это всплывающее окно. Вы можете использовать эту библиотеку всплывающих окон или, может быть, эту библиотеку . Настройка Css для переопределения позиционирования и цветовых значений является обязательной.
Для редактирования и переопределения тегов библиотеки и свойств класса используйте префикс ::ng-deep
(E.G :: ::ng-deep ngb-popover-window { /* customization here */ }
).
Единственный способ просмотреть материал sidenav - это переопределение css, но это довольно минное поле, и существует риск испортить текущий макет приложения.
Хорошей альтернативой всплывающему окну (а также более простому в реализации) может быть изменение ширины меню при наведении курсора мыши на отображение второго столбца, который будет содержать ссылки на подразделы ...
Я видел нечто подобное здесь , но это просто для того, чтобы получить идеи.
Для содержимого меню, попробуйте продублировать код с разными
поведения в зависимости от isExpanded
значения, так что вы можете "легко"
управлять видом дерева и всплывающим подменю.
ИСТОЧНИК: Я делаю это прямо сейчас
Надеюсь, это поможет!