【问题标题】:How to extend a component screen in Moqui?如何在 Moqui 中扩展组件屏幕?
【发布时间】:2020-03-03 15:22:20
【问题描述】:

我正在尝试修改屏幕的结构。具体来说,我想向 System/dashboard.xml 添加按钮。问题是屏幕不像 webroot/apps/AppList.xml 那样从其子屏幕迭代地构建其按钮。它们是硬编码的。

我考虑了两种解决方案:

  1. 只需覆盖我的组件中的dashboard.xml
  2. 将javascript注入dashboard.xml以动态创建按钮

解决方案 1 可行,但显然不希望这样做,因为它可能会与其他想要修改dashboard.xml 并使用相同方法的组件产生冲突。

我无法绕过实施解决方案 2,因为如果我理解正确,带有 javascript 的已安装dashboard.xml 子屏幕将不会在dashboard.xml 中执行,因为它不在url 路径中。一种解决方案是颠倒安装顺序,并在 javascript 屏幕下安装 dashboard.xml,但这会产生类似于解决方案 1 的问题。

那么,是否有标准或推荐的方法来执行此操作?

【问题讨论】:

    标签: erp moqui


    【解决方案1】:

    我认为您可以通过三种方式进行扩展,而不是扩展它。

    第一个是使用标签将屏幕包含在扩展屏幕中

    <include-screen location"component://path/to/component"/>
    

    您可以将它与&lt;include-screen ...share-scope="true" /&gt; 结合使用,以便两个页面在相同的上下文中运行。

    第二个是使用参数化,因此当您根据标志包含屏幕时,是否添加第三个按钮:

    <actions>
       <set field="parameterName" value="1"/> <!-- or 0 -->
    </actions>
    <widgets>
    ...
     <include-screen location"component://path/to/component"/>
    ...
    </widgets>
    

    在dashboard.xml中

    <parameter name="parameterName" />
    <!-- then use conditional-field or if tag to show conditionally -->
    

    第三个是尝试复制 webroot/apps/AppList.xml 中的菜单结构,就像选项卡和菜单一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      相关资源
      最近更新 更多