2013-12-15 2 views
1

Не в этом сомневаюсь, с чего начать.sencha touch carousel не снимает все позиции

У меня есть карусель, которую я нагрузить, когда срабатывает событие обновления экрана на моем бэк-магазине:

Ext.define('Rb.store.Items', { 
     extend: 'Ext.data.Store', 
     requires: ['Rb.model.Item', 'Ext.data.proxy.Rest'], 
     config: { 
      storeId: 'itemstore', 
      model: 'Rb.model.Item', 
      proxy: { 
       type: 'rest', 
       url: '', 
       reader: { 
        type: 'json', 
        rootProperty: 'items' 
       } 
      }, 
      autoLoad: false, 
      listeners:{ 
       refresh: function(me, data, eOpts){ 
        console.log("refresh"); 
        var carousel = Ext.ComponentQuery.query('rbdetailcarousel')[0]; 
        carousel.removeAll(true); 
        console.log(carousel.getItems().getCount()); 
        data.each(function(rec){ 
         console.log(rec.data); 
         var rdcp = Ext.create('Rb.view.RbDetailCarouselPanel',{ 
                 cur_item: rec.data, 
                 style: 'background-image:url(resources/startup/320x460.jpg);background-repeat:no-repeat;', 
                }); 
         rdcp.items.get(1).setHtml(rec.data.name); 
         carousel.setActiveItem(rdcp); 

        }); 

        carousel.setActiveItem(0); 
       } 
      } 
     } 
    }); 

Мой карусельного супер просто:

Ext.define('Rb.view.RbDetailCarousel', { 
     extend: 'Ext.Carousel', 
     xtype: 'rbdetailcarousel', 
     config: { 
      itemId: 'rbdetailcarousel', 
     } 
    }); 

Есть две вещи, которые происходят здесь Странно:

  1. Когда я вызываю carousel.getItems(), getCount(), сразу после автомобиля ousel.removeAll (true), я всегда получаю возвращаемое значение 1. Если я осмотрю карусель, в карусели останется еще один элемент (похоже, это индикатор?).

  2. Когда я перезарядить магазин, он очищает все пункты кроме первого, так что, как я обновить все больше и больше я получаю повторы первого пункта, то остальные элементы, добавленные к концу. Кажется, что removeAll (true) не удаляет этот первый элемент.

Любые идеи о том, где я могу найти решение? У меня есть подозрение, что я не хватаю ссылку на карусель правильно, потому что я не должен возвращать индикатор как один из предметов в нем, правильно?

Благодаря

+0

что означает эта линия? 'rdcp.items.get (1) .setHtml (rec.data.name);' –

+0

@ThiemNguyen - эта строка просто устанавливает html для панели, содержащейся в элементе rdcp. Для этого он использует поле «имя» из текущей записи. – jb44

+0

не уверен, что ошибка действительно здесь. Можете ли вы отправить скрипку, чтобы я мог помочь? https://fiddle.sencha.com –

ответ

0

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

Смежные вопросы