2016-11-17 179 views
2

可以使用Ext.define语句定义链式商店吗?我试着下面的代码,但我得到的错误:Extjs 6使用Ext.define定义链式商店

Ext.define('MyProject.store.RelFiltered', { 
    extend: 'Ext.data.ChainedStore', 
    source:'MyProject.store.Rel', 
    alias: 'store.releasesFiltered' 
}); 

我收到的错误是:

Ext.data.ChainedStore.applySource(): Invalid source "MyProject.store.Rel" specified for Ext.data.ChainedStore 

Ext.mixin.Bindable.applyBind(): Cannot use bind config without a viewModel 

我从this后得到了爱迪,但它似乎代码是不完整的。

谢谢

回答

4

链式存储可被定义使用Ext.define声明?

肯定是的。但chained storesource config表示它应该是商店实例或现有商店的ID。

因此,代码是这样的:

Ext.define('MyApp.store.MyChainedStore', { 
    extend: 'Ext.data.ChainedStore', 

    storeId: 'MyChainedStore', 
    //source using storeID 
    source: 'OriginalStore' 

}); 

Ext.define('MyApp.store.OriginalStore', { 
    extend: 'Ext.data.Store', 

    requires: [ 
     'Ext.data.field.Field' 
    ], 

    storeId: 'OriginalStore', 
    data: [{ 
     id: 1, 
     name: 'commodi' 
    }], 
    fields: [{ 
     name: 'id' 
    }, { 
     name: 'name' 
    }] 
}); 

看看这个小提琴例子https://fiddle.sencha.com/#view/editor&fiddle/1kk4