Я пытаюсь объединить функциональность ui-sortable и angular-gridster, чтобы я мог вытащить элемент из списка и поместить его в изменяемую сетку. ui-sortable и angular-gridster имеют одинаковую структуру DOM:
<div>
<ul>
<li ng-repeat="item in items"></li>
</ul>
</div>
а атрибуты позволяют им присоединяться к соответствующим элементам DOM. Я думал, что это будет довольно простая задача, однако я не могу заставить их работать вместе.
Я создал этот CodePen, где вы можете перетащить его из сортируемого пользовательским интерфейсом списка "Ингредиенты" в список «Мой кофе». Перетаскивание в «Мой кофе» также обновляет угловую сетку «Кофейная сетка», поскольку «Мой кофе» и «Кофейная сетка» используют одну и ту же модель. То, что я хотел бы сделать, это перетащить прямо из «Ингредиентов» в «Coffee Grid».
Основное отличие, которое я вижу, заключается в том, что после настройки DOM Gridster выглядит так:
<div gridster>
**<div ng-transclude>**
<ul>
<li></li>
</ul>
</div>
</div>
И ui-sortable выглядит так:
<div ui-sortable>
<ul>
<li></li>
</ul>
</div>
Итак, angular-gridster добавляет <div ng-trasclude>
, заставляя меня думать, что у ui-sortable могут возникнуть проблемы с присоединением к элементам DOM, поскольку там есть этот неожиданный div.
Я также просмотрел исходный код с сортировкой пользовательского интерфейса локально и определил, что его метод обновления никогда не вызывается. Успешное перетаскивание вызовет следующие методы:
start
activate x2
update
remove
receive
update
stop
где попытка перетаскивания в angular-gridster выглядит так:
start
activate x3
stop
Однако я не смог определить, почему обновление никогда не вызывалось и не возникало никаких ошибок.
Я понимаю, что это очень специфический вопрос, и я надеюсь, что кто-то, возможно, столкнулся с той же проблемой или захочет помочь мне в отладке. Заранее спасибо!