2014-04-23 41 views
0

我需要將列表中選定項目的值傳遞給詳細信息列表以從商店加載數據。sencha touch 2如何從項目列表中創建url動態存儲

代碼視圖是

Ext.define('App.view.PresidentList', { 
extend: 'Ext.List', 
xtype: 'presidentlist', 
requires: ['App.store.Presidents','Ext.dataview.NestedList','Ext.data.proxy.JsonP'], 

config: { 
    title: 'Events', 
    iconCls: 'star', 
    //grouped: true, 
    itemTpl: '<b>{evento}</b><br>{nombre}', 
    store: 'Presidents', 
    onItemDisclosure: true, 

} 

});

代碼控制器是

Ext.define('App.controller.Main', { 
extend: 'Ext.app.Controller', 

config: { 
    refs: { 
     main: 'mainpanel' 
    }, 
    control: { 
     'presidentlist': { 
      disclose: 'showDetail' 
     } 
    } 
}, 

showDetail: function(list, record) { 

    var listItems = Ext.create('App.store.ListItems', {newUrl : record.getData()}); 
    listItems.load(); 

    this.getMain().push({ 
     xtype: 'presidentdetail', 
     title: record.fullName(), 
     data: record.getData(), 
     store: listItems 
    }); 
} 

});

代碼視圖datail是

Ext.define('App.view.PresidentDetail', { 
extend: 'Ext.tab.Panel', 
xtype: 'presidentdetail', 

config: { 
    title: 'Details', 
    scrollable: 'vertical', 
    items: 
    [ 
     { 
      extend: 'Ext.List', 
      xtype: 'presidentlist', 
      requires: ['App.store.ListItems','Ext.dataview.NestedList','Ext.data.proxy.JsonP'], 

      config: { 
       title: 'Events', 
       iconCls: 'star', 
       //grouped: true, 
       itemTpl: '<b>{evento}</b><br>{nombre}', 
       store: 'ListItems', 
       onItemDisclosure: true, 

      } 
     }, 
     { 
      xtype: 'nestedlist', 
      title: 'Contactos', 
      id: 'panel2', 
      useToolbar:false, 
      displayField: 'title', 
      store: { 
       type: 'tree', 
       fields: [ 
        'title','link','author','contentSnippet','content', 
        {name: 'leaf', defaultValue: true} 
       ], 
       root: { 
        leaf: false 
       }, 
       proxy: { 
        type: 'jsonp', 
        url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog/', 
        reader: { 
         type: 'json', 
         rootProperty: 'responseData.feed.entries' 
        } 
       } 
      }, 
      detailCard: { 
       xtype: 'panel', 
       scrollable: true, 
       styleHtmlContent: true 
      }, 
      listeners: { 
       itemtap: function(nestedList, list, index, element, post) { 
        this.getDetailCard().setHtml(post.get('content')); 
       } 
      } 
     }, 
     { 
      xtype: 'panel', 
      id: 'panel5', 
      title: 'Costos', 
      iconCls: 'home' 
     }, 
     { 
      xtype: 'panel', 
      title: 'Otros', 
      iconCls: 'favorites', 
      id: 'panel5'     
     }, 
    ] 
} 

});

和listItems中的代碼存儲是

Ext.define('App.store.ListItems',{ 
extend: 'Ext.data.Store', 
autoLoad: true, 
config: { 
    model: 'App.model.President', 
    proxy: { 
     //autoLoad: true, 
     type: 'ajax', 
     url:<-------->here comes the url with the variable that is passed from the list 
     reader: { 
      type: 'json', 
      rootProperty: "test" 
     } 
    } 
} 

});

請與此問題協作不要這樣做。非常感謝你。

回答

1

如果你只是想更改代理的URL上一個商店,你可以這樣做

Ext.getStore('YourStoreId').getProxy().setUrl("your_new_url"); 
Ext.getStore('YourStoreId').load(); 
+0

謝謝,這個答案很成功 – user2008944

0

必須使用estraParams代理中的 extraParams:{PARM1:2,Parm2:'EEEE '},

相關問題