【发布时间】:2019-06-29 18:27:03
【问题描述】:
我对 ExtJS 还很陌生,我有点陷入其中一个问题,所以我需要你的帮助。
基本上我使用以下 URL 访问我的应用程序:
servername:port/XMII/CM/XYZ/index.html?machine=1&typeofpage=dashboard
我通过全局控制器 getMode() 中使用的以下代码获取这些 URL 参数 machine 和 typeofpage:
//get the url parameters
var url = window.location.search,
urlParams = Ext.Object.fromQueryString(url);
return {
machineID: urlParams.machine,
typeofPage: urlParams.typeofpage
};
现在根据页面类型,我通过初始视口的afterrender方法中的以下代码来决定打开哪个页面:
var mode = this.getMode();
if(mode.typeofpage=== 'dashboard') {
panel = Ext.create('XYZ.view.Dashboard',{
ID_MACHINE: mode.machineID
});
component.add(panel);
}
所以上面的代码正确调用了我的仪表板页面,将 machineID 正确地传递为 1。
使用此 machineID 属性,我将其传递给存储 MachineParts,此存储为我提供机器 ID 1 的所有机器部件。以下是 XYZ.view.Dashboard 的 aferrender 中的代码:
var me = this,
machinepartIds= [];
Ext.defer(function(){
component.mask('Loading...');
me.getStore('MachinePart').load({
params:{
'Param.1': component.ID_MACHINE
},
callback: function(response) {
component.unmask();
Ext.each(response, function(panel) {
machinepartIds.push(panel.get('MachinePartID'));
});
alert('Machine IDs: ' + machinepartIds.toString();
}
});
},10);
所以可以说它给了我以下数据:
MachineID MachinePartID
1 20
1 21
1 22
现在我有一个名为 loadKPIs 的函数,它以参数为 ID - 即 machinepartID。我使用这个 loadKPIs 函数来填充页面上的所有 KPI,并将它们显示为仪表板的特定机器部件 ID。
我想每 10 分钟将 machinepartIDs 20、21、22 传递给 loadKPIs 函数,以便我可以在 10 分钟内显示每个机器部件的仪表板。
例如,我将从机器部件 ID 20 开始。10 分钟后,我想将机器部件 ID 传递为 21。10 分钟后,我想将机器部件 ID 传递为 22。然后在 10 分钟后再次返回 20。我确定我需要使用 TaskRunner,但我不知道该怎么做。
【问题讨论】:
-
不要忘记使用该答案中的复选框将答案标记为答案。投票是不够的。
标签: extjs extjs4 extjs5 sencha-architect