gpt4 book ai didi

javascript - SugarCRM 7 : Call BaseFilterLayout. applyFilter() 方法在事件上下文之外

转载 作者:行者123 更新时间:2023-11-28 07:23:54 25 4
gpt4 key购买 nike

我正在对 Sugar Professional 7.2.x 进行自定义,将辅助脚本中的过滤器推送到 ListView 页面的过滤器函数中。通过在 applyFilter 函数内设置断点并将函数本身导出为全局对象的成员,然后我可以从脚本中调用该函数并相应地执行临时过滤器。所以我知道我有正确的执行语法,例如:

window.exportedApplyFilter(null, {name:"Mr. Rogers"});

问题是我无法以任何其他方式获取 applyFilter 函数,例如

App.view.layout.someMagicObject.applyFilter(...);

有没有办法从另一个脚本访问该函数?

最佳答案

感谢 Sugar 团队,我的问题得到了答案。解决方案是通过controller.layout对象树来窥探:

App.controller.layout.getComponent('sidebar').getComponent('main-pane')

这允许深入了解任何 Sidecar UI 组件并访问与其关联的 Controller 功能。也许不如其他解决方案那么优雅,但它是可读的。

如果我想更进一步,我可能会编写一个简短的函数来递归子树并查找具有正确 CID 编号的元素,然后返回它的完整路径。 CID 编号是渐进式的并且是深度优先的,因此搜索速度会相当快。但在浏览器开发控制台中手动搜索只花了几分钟。一旦找到,再次访问它就是一系列 getComponent(...) 调用的问题。链的最终返回应该是想要的元素(在我的例子中是过滤器控件),并且也应该具有所需的方法。

关于javascript - SugarCRM 7 : Call BaseFilterLayout. applyFilter() 方法在事件上下文之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com