我想知道:为什么我们定义的新小部件的别名总是定义为“widget.myxtype” - “小部件”的意义是什么?
答案 0 :(得分:3)
Alias属性是在ExtJs4中新引入的,并且是以前版本中“xtype”的替代。别名中指定的“widget”有两个我能想到的重要性:
您可以使用速记来创建窗口小部件。例如,如果您有一个名为widget.myview的小部件,则可以按如下方式创建它的实例:
var view = Ext.widget('myview');
如果您没有在别名中添加“小部件”前缀,则只能通过以下方式实例化:
var view = Ext.create('xyz.myview');
此外,create方法可用于创建使用Ext.define()定义的任何类的实例。
当您为“小部件”添加前缀时,您确定它们将处理UI。这有助于更好地理解和阅读代码(当您看到Ext.widget('abc')时,您知道它的窗口,按钮或某些UI组件)。
<强>更新强> 别名属性由非UI组件的其他类使用。但是,您只会看到UI组件的“窗口小部件”,因此将其表示为视图或UI(这就是为什么他们只有窗口小部件的简写)。其他ExtJS类也有别名。例如,所有Proxy类都将具有“proxy”前缀。但就目前而言,“代理”前缀的唯一意义是可读性。
答案 1 :(得分:2)
我认为它是一种命名空间:你也可以为代理,读者和编写者定义别名,它们分别需要以'proxy。','reader'为前缀。和'作家'。 :
Ext.define('App.proxy.MyProxy', {
extend: 'Ext.data.proxy.Rest',
alias: ['proxy.my_proxy'],
Ext.define('App.reader.MyReader', {
extend: 'Ext.data.reader.Json',
alias: ['reader.my_reader'],
Ext.define('App.reader.MyWriter', {
extend: 'Ext.data.writer.Json',
alias: ['writer.my_writer'],
然后你可以用:
来引用它们 proxy: {
type: 'my_proxy',
url: '/data/library_store.json',
reader: {
type: 'my_reader',
...
},
writer: 'my_writer'