Перезагрузить карусель - PullRequest
0 голосов
/ 15 июня 2011

Мне нужно перезагрузить элементы из моей карусели (я щелкнул по элементу, и панель разрушается, затем, когда я пытаюсь вернуться назад, мне нужно восстановить карусель)

Для этого я удаляюэлементы карусели, выполнив:

var len = cards.length;
for(var c = 0; c < len;c++)
this.myCarousel[0].items.remove(cards[0]);

, затем я снова установил карты и снова установил элементы карусели:

this.myCarousel[0].items.append(cards);
this.doLayout();

, но после этого карты не установились правильно, они просто пишутся друг на друга, без карусельного эффекта.Кроме того, карты начинают вытягиваться под панелью инструментов карусели, а не под панелью инструментов.

В первый раз, когда я загружаю карты, все работает отлично (когда я строю карусель с нуля), но если я удаляюпредыдущие карты и добавьте их снова, они не отображаются должным образом, я надеюсь, что кто-то может мне помочь.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Выполните добавление и удаление на самой карусели, так как для этого есть методы:

this.myCarousel.removeAll();
var items = [];
for (...) {
   items.push(<item def>);
}
this.myCarousel.add(items);
this.carousel.doLayout(); // Force the carousel to re-render
this.myCarousel.scrollToCard(0); // This will send the user back to the first card

Если пользователь запустил вышеупомянутую карту на другой карте (скажем, если вы положили ее в проверку ориентации), то вы должны вернуть их на правильную карту следующим образом:

var curIndex = this.myCarousel.items.items.indexOf(this.myCarousel.layout.activeItem);
// Now do removing and adding
this.myCarousel.scrollToCard(this.myCarousel.items.items[curIndex]);

Вы должны использовать индекс, так как элемент будет удален.

0 голосов
/ 17 января 2012

id должен использоваться только для отладки. Есть более эффективные способы разрешения компонента, чем использование идентификатора, который может привести к неприятностям.

...