0
我有一個要求,我想在requires
有條件地添加命名空間。Sencha - 有條件地添加namesapce需要
例如在下面的例子中,我想在特定條件下添加'views.popupgrid'名稱空間。目前它總是加載。
requires: ['Ext.window.MessageBox','views.popupgrid','user.MyUser' ]
我有一個要求,我想在requires
有條件地添加命名空間。Sencha - 有條件地添加namesapce需要
例如在下面的例子中,我想在特定條件下添加'views.popupgrid'名稱空間。目前它總是加載。
requires: ['Ext.window.MessageBox','views.popupgrid','user.MyUser' ]
Sencha工具鏈不支持條件依賴關係。當你將能夠在您選擇
requires:[
(location.hash=='#test')?'testpopup':'normalpopup'
]
的文本編輯器編寫,這將在未編譯版本中運行,煎茶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)傳遞時。
最好的答案從來沒有想過這個解決方案的.. –