マルチカードカードパネルを備えたカルーセルを作成するには、senchaを使用しています。各パネルには、ストアの独自のインスタンスにアタッチされるリストコンポーネントが含まれています。 すべてのリストストアインスタンスは、同じAPIを呼び出してデータをフェッチしますが、パラメータは異なります。バインドをリストして保存する...同じデータを抽出する
例: カード1は、mywebsite.com/api?node=1 カード2呼び出す1を保管するために添付のリスト1を持っていますmywebsite.com/api?node=2を呼び出す2を保管するために添付リスト2を持っています
カード1には、APIから取得された正しいノードセットが表示されます。しかし、カード2を見るためにスワイプすると、リスト1とリスト2の両方に全く同じデータが表示されますが、それぞれに独自のリストデータが必要です。
コード:
Test.data.NodeStore = Ext.extend(Ext.data.Store, {
constructor : function(config) {
config = Ext.apply({
model: 'Test.models.Node',
autoLoad: false,
pageSize: 20,
proxy: {
type: 'scripttag',
url: Test.API.URL + '?action=getNodes',
extraParams: {
},
reader: {
type: 'json'
}
},
setSource: function(source) {
if(this.getProxy().extraParams.sourceID != source) {
this.getProxy().extraParams.sourceID = source;
}
}
}, config);
Test.data.NodeStore.superclass.constructor.call(this, config);
},
onDestroy : function(config) {
Test.data.NodeStore.superclass.onDestroy.apply(this, arguments);
}
});
Ext.reg('NodeStore', Test.data.NodeStore);
リストビュー:
Test.views.ListView = Ext.extend(Ext.Panel, {
sourceID: 0,
layout: {
type: 'vbox',
align: 'stretch'
},
items: [
{
xtype: 'list',
itemTpl : new Ext.XTemplate("<div class='node'>{title}</div>"),
store: Ext.create(Test.data.NodeStore, {}),
}
],
setSource: function(source) {
this.sourceID = source;
var store = this.items.get(0).getStore();
store.setSource(source);
store.load();
}
});
動的リストビューを作成し、メインビュー
Test.views.Viewer = Ext.extend(Ext.Carousel, {
indicator: false,
layout: 'card',
style: {
padding: '0 20px'
},
items: [
],
loadListView: function(listIndex) {
var currentRecord = Test.stores.ListStore.getAt(listIndex);
var newList = new Test.views.ListView();
newList.setSource(currentRecord.get('ID'));
this.add(newList);
this.doLayout();
},
initComponent: function() {
Test.views.Viewer.superclass.initComponent.apply(this, arguments);
loadListView(1);
loadListView(2);
}
});
これは、私はちょうど疑問に思って...本当に奇妙です、正確に同じ店、モデル、リストのコンポーネントを割り当てる煎茶です...どこに見えるかわからない