2013-07-01 4 views
1

Я хотел бы передать данные с setActiveItem() при выполнении изменения вида из этого магазина:setActiveItem() прохождение Сенч данных сенсорного

Ext.define('SkSe.store.Places',{ 
    extend:'Ext.data.Store', 
    config:{ 
     autoDestroy: true, 

     model:'SkSe.model.Places', 

     //hardcoded data 

     data: [ 
      { 
       name: 'Caffe Bar XS', //naziv objekta 
       icon: 'Icon.png', //tu bi trebala ići ikona kategorije kojoj pripada 
       stamps: 'stamps1' //broj "stampova" koje je korisnik prikupio 
      }, 
      { 
       name: 'Caffe Bar Mali medo', 
       icon: 'Icon.png', 
       stamps: 'stamps2' 
      }, 
      { 
       name: 'Caffe Bar VIP', 
       icon: 'Icon.png', 
       stamps: 'stamps3' 
      } 
     ] 

     //dynamic data (Matija) 
     //remember to change the icon path in "Akcije.js -> itemTpl" 

     /*proxy:{ 
      type:'ajax', 
      url:'https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyCFWZSKDslql5GZR0OJlVcgoQJP1UKgZ5U', 
      reader:{ 
       type:'json', 
       //name of array where the results are stored 
       rootProperty:'results' 
      } 
     }*/ 
    } 
}); 

Это мой мой детали контроллер, который должен получить данные из мест магазина:

Ext.define('SkSe.controller.Details', { 
    extend: 'Ext.app.Controller', 

    config: { 

     refs: { 
      placesContainer:'placesContainer', 
      Details: 'details' 
     }, 
     control: { 
      //get me the list inside the places which is inside placesContainer 
      'placesContainer places list':{ 
       itemsingletap:'onItemTap' 
       //itemtap:'onItemTap' 
      } 

     } 
    }, 

    onItemTap:function(list,index,target,record){ 

      console.log('omg'); 


     var addcontact= Ext.create('SkSe.view.Details', 
      { 
       xtype:'details', 
       title:record.data.name, 
       data:record.data 
      }); 



     var panelsArray = Ext.ComponentQuery.query('details'); 
     console.log(panelsArray); 
     Ext.Viewport.add(addcontact); 
     addcontact.update(record.data.name); 
     Ext.Viewport.setActiveItem(addcontact); 
     console.log(record.data.name); 
    } 

}); 

Я хотел бы отправить имя записи с мест. Я слышал, что вы не можете передавать данные с помощью setActiveItem, но должны создать функцию, которая обновляет представление (Нет, я не могу использовать pop и push здесь).

Я не очень хорошо знаком с синтаксисом sencha touch, и я не уверен, какие функции использовать для этого, ясно, что функция обновления не так.

ответ

1

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

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

Загруженный исходный список получает данные из вашего магазина, а на itemtap будет нажимать новый вид на окно просмотра.

Вам нужно будет добавить кнопку навигации, чтобы вернуться к списку из view.View, а также лучший макет для деталей. Я бы предложил вложенные контейнеры или панели с пользовательскими стилями, чтобы получить информацию в самый раз. Кроме того, вы можете просто отбросить полный html-фрагмент там, где все данные выложены так, как вы хотите.

Буду рад помочь больше.

Fiddle: http://www.senchafiddle.com/#XQNA8

+0

Ссылка ухудшилась. – hunterInt

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