抱歉,如果没有正确命名,开发不是我的第一语言:)
我正在尝试向名为 Traccar(基于 Web 的跟踪平台)的 extjs Web 应用程序添加功能。
对于熟悉该应用程序的任何人,我正在尝试将“快速报告”按钮添加到设备部分,以便您可以单击设备,单击按钮,它将展开报告部分并预先选择报告类型为行程,设备为所选设备,然后单击显示。
从技术角度来看,我已经实现了其中的一些。我相信我需要关注两个视图控制器 - “DevicesController.js”(https://github.com/traccar/traccar-web/blob/9e1c0b44189136ec6abf05720c698027a689fa08/web/app/view/edit/DevicesController.js) js)和“ReportsController.js”(https://github.com/traccar/traccar-web/blob/9e1c0b44189136ec6abf05720c698027a689fa08/web/app/view/ReportController.js)
我已经弄清楚了如何扩展屏幕底部的报告部分(这很容易):
onQuickReportClick: function() {
Ext.getCmp('reportViewPanel').expand(true);
},
我一直在尝试调用报告控制器与它进行交互,但我似乎无法理解如何做到这一点(如果你能做到的话)我一直在尝试类似 -
var reportController = Traccar.app.getController("Traccar.view.ReportController");
reportController.test();
但是,我收到这样的错误
``` Uncaught TypeError: controller.doInit is not a function
``` at constructor.getController (ext-all-debug.js:95199:28)
``` at constructor.onQuickReportClick (DevicesController.js:109:38)
``` at Object.callback (ext-all-debug.js:8705:32)
``` at constructor.fireHandler (ext-all-debug.js:144259:17)
``` at constructor.onClick (ext-all-debug.js:144241:16)
``` at constructor.fire (ext-all-debug.js:20731:42)
``` at constructor.fire (ext-all-debug.js:34336:27)
``` at constructor.publish (ext-all-debug.js:34296:28)
``` at constructor.publishDelegatedDomEvent (ext-all-debug.js:34318:14)
``` at constructor.doDelegatedEvent (ext-all-debug.js:34361:16)
测试方法目前很简单,只是为了证明我到了那里-
test: function () {
showToast("test - succsfully in report controller", "test");
},
任何指针/指导/建议将不胜感激