Когда я переключаю боковую навигацию, я жду ответа и затем вызываю gridster.resize()
:
sideNavToggle() {
this.sideNav.toggle().then(() => {
this.gridster.resize();
});
}
Вот полный пример блиц-стека.
Убедитесь, что окно приложения достаточно широкое, чтобы сетка отображала макет рабочего стола - или лучше. Откройте приложение в новое окно.
Вот один пример:
Когда я запускаю приложение, ширина плитки элемента сетки составляет ~ 223, и она отображается должным образом.
Когда я переключаю боковую навигацию, элемент сетки меняет размер правильно:
- когда я использую инструменты разработчика, я вижу, что новая ширина плитки составляет 252
- также журнал консоли обратного вызова изменения размера сетки показывает, что ширина 252
- Но ширина в компоненте неправильная: она все еще равна 223 (см. Текст на плитке):
itemComponent.width 252
Когда я снова переключаю боковую навигацию, чтобы открыть ее, происходит то же самое:
- плитка вернулась к 223
- но текст на плитке по-прежнему показывает ширину 252
- кажется что ширина в моей плитке всегда отстает
Вы хоть представляете, что мне не хватает?
Примечание: в моем реальном приложении плитка содержит компонент диаграммы, размер которого будет автоматически изменяться в зависимости от родительского div (который находится в плитке). Поэтому важно, чтобы dom-width / height в плитке были правильными, когда произошло событие изменения размера.
Примечания:
- это также происходит с последней версией 8.x Angular, angular-gridster2 и angular-material: пример stackblitz