我要求我有条件地在requires
添加名称空间。
e.g。在下面的示例中,我想在特定条件下添加“views.popupgrid”名称空间。目前它总是被加载。
requires: ['Ext.window.MessageBox','views.popupgrid','user.MyUser' ]
答案 0 :(得分:1)
Sencha工具链不支持条件依赖项。虽然您可以在您选择的文本编辑器中书写
requires:[
(location.hash=='#test')?'testpopup':'normalpopup'
]
这可以在未编译的版本中运行,Sencha Cmd将无法正确编译它,并会抛出错误。
因此,Sencha Architect不支持这种语法。
您可以做什么,同时保持符合标准:您可以使用Ext.Loader.loadScript
,例如像这样:
Ext.define('MyForm',{
extend: 'Ext.form.Panel'
initComponent:function() {
var me = this;
me.callParent(arguments);
if(x==3) Ext.Loader.loadScript({
url:'MyCustomFormComponent.js',
onLoad:function(){
me.add({
xtype:'mycustomformcomponent'
});
})
});
}
})
请注意,在这种情况下,您始终必须与缩小的MyCustomFormComponent.js
一起提供app.js
,因为工具链无法解决依赖关系。此外,根据连接,在加载资源并将组件添加到表单之前可能存在可见的延迟。
总是加载依赖项通常更快更顺畅,特别是如果您打算将应用程序作为单个缩小的javascript文件(例如使用Sencha Cmd)传送。