我正在阅读Sencha的Store
here
这两个术语需要唯一的名称/ ID。为什么我们都需要它们?为什么不使用userClassName
的{{1}}值?
答案 0 :(得分:1)
定义商店的代码是:
/**
*/
Ext.define('MyApp.store.Wallpaper', {
extend: 'Ext.data.DirectStore',
requires: [
'MyModel'
],
model: 'MyModel',
constructor: function () {
var me = this;
var cfg = {
storeId: 'wallpapersStore',
proxy: {
type: 'direct',
directFn: mydirFn,
reader: {
type: 'json',
root: 'wallpapers'
}
}
};
me.callParent([cfg]);
return me;
}
});
在这个定义中,userClassName实际上是:“MyApp.store.Wallpaper”并用于
var instance1 = Ext.create('MyApp.store.Wallpaper');
虽然storeId用于全局商店实例:
var instance2 = Ext.getStore('wallpapersStore'); //instance1 === instance2
var instance3 = Ext.getStore('wallpapersStore'); //instance1 === instance2 === instance3
var instance4 = Ext.create('MyApp.store.Wallpaper'); //this generates an error because of the conflicting storeId's
此外,ExtJS中不存在userClassName,它仅由Sencha Architect用于识别用户想要的className;