У меня вопрос о функции перетаскивания Angular 7 CDK. Я хочу следующее: мне нужен прямоугольник изменяемого размера div
внутри контейнера, который я хочу использовать в качестве граничного элемента (cdkDragBoundary
) для моего перетаскивания. Так что это довольно просто.
<div class="drag-boundary">
<div cdkDrag cdkDragLockAxis="x" (cdkDragEnded)="onDragDropped($event)"
cdkDragBoundary=".drag-boundary" />
</div>
</div>
Прямоугольник позиционируется абсолютно, поэтому я использую свойства width
и left
для его размера и положения.
Проблема: пока я не изменяю размер прямоугольника, я не могу перетащить его за граничный элемент, поэтому он отлично работает. Но когда я изменяю размер div (вручную в Chrome или из кода), cdkDrag считает, что прямоугольник все еще имеет свой исходный размер, и обрабатывает мое перетаскивание соответственно .. Если я помещаю все это на вкладку и переключаю вкладку и вернитесь, затем cdkDrag будет повторно инициализирован, поэтому граница снова заработает, но я не знаю, как это сделать из кода.
Итак, вкратце вопрос: как я могу заставить cdkDrag
всегда использовать фактический размер перетаскиваемого элемента, если он изменился?
Спасибо за помощь!