Google app maker 谷歌appmaker过滤器下拉列表

Google app maker 谷歌appmaker过滤器下拉列表,google-app-maker,Google App Maker,我刚开始使用GoogleAppMaker,在理解查询生成器的工作原理时遇到了一些困难 以下是我的设想: 我有三个数据来源: 客户: 名字 计划 名字 顾客 里程碑 名字 顾客 计划 现在,我已经建立了这些模型之间的关系,以便: 一个项目有一个客户(但一个客户可以有多个项目) 一个里程碑有一个项目和一个客户 现在,当创建里程碑时,我希望用户首先选择一个客户,然后,当他们选择一个项目时,我希望该项目的下拉列表仅显示属于该客户的项目 我目前的做法如下: 我创建了一个名为“Milestone

我刚开始使用GoogleAppMaker,在理解查询生成器的工作原理时遇到了一些困难

以下是我的设想:

我有三个数据来源:

  • 客户:
    • 名字
  • 计划
    • 名字
    • 顾客
  • 里程碑
    • 名字
    • 顾客
    • 计划
  • 现在,我已经建立了这些模型之间的关系,以便: 一个项目有一个客户(但一个客户可以有多个项目) 一个里程碑有一个项目和一个客户

    现在,当创建里程碑时,我希望用户首先选择一个客户,然后,当他们选择一个项目时,我希望该项目的下拉列表仅显示属于该客户的项目

    我目前的做法如下: 我创建了一个名为“MilestonePage”的页面,其中包含里程碑数据模型集。该页面包含一个表(不可编辑)和一个(创建)表单。表单有两个下拉列表(客户、项目)和一个文本字段(名称)。 我的想法是,Project下拉列表需要修改其选项,以便由所选客户筛选可用项目的列表。 我看过文档,但老实说,我找不到关于如何使用编辑器的正确解释。我还查看了Projects Tracker和ProjectList示例,但它们都没有我需要的配置。 我的最佳猜测是将选项设置为:

    @datasources.Project.query.filters.Customer._equals
    
    @datasources.Project.relations.Customer.item.Project
    
    或者以某种方式利用这种关系,比如:

    @datasources.Project.query.filters.Customer._equals
    
    @datasources.Project.relations.Customer.item.Project
    
    不用说,这些都不起作用。最后一个总是给我分配给表中第一个客户的项目,我不知道为什么

    我愿意使用其他控件和/或脚本来实现这一点,但感觉解决方案应该更简单


    任何帮助都将不胜感激。

    根据您对问题的描述,这就是我所做的:

    首先,我建立了如下模型:

  • 客户:

    • 名字
  • 项目:

    • 名字
  • 里程碑:

    • 名字

  • 其次,我建立如下关系:

  • 顾客

    • (客户)一对多(里程碑)

    • (客户)一对多(项目)

  • 里程碑

    • (里程碑)多对一(客户)

    • (里程碑)多对一(项目)

  • 计划

    • (项目)多对一(客户)

    • (项目)一对多(里程碑)


  • 第三,我创建了一个页面“milestonePage”,其中包含里程碑数据模型集。在该页面中,我插入了一个表和一个插入表。页面如下所示:

    从这里开始,唯一要做的就是确保客户下拉列表和项目下拉列表的绑定是正确的。默认情况下,客户下拉列表应具有以下绑定:

    • 选项:
      @datasources.customer.items

    • 值:
      @datasource.item.customer

    最后,棘手的问题是项目下拉列表。由于要显示属于所选客户的项目,因此必须执行以下操作:

  • 删除选项值的绑定
  • 确保新绑定如下所示:

    • 选项:
      @widget.parent.substands.Field2.value.project
      (其中Field2客户的dropdwon

    • 值:
      @datasource.item.project

  • 奖励:为避免任何混淆,请将其添加到客户下拉列表的onValueChange处理程序中
    widget.parent.subjects.Field3.value=null(其中字段3项目下拉列表。)


    p.S.请注意Markus Malessa提到的关于设置预回迁的内容,因为这是必要的。

    在您的客户数据源中,我建议为项目设置预回迁,然后在项目下拉列表中设置绑定到@datasources.Customer.relations.Project的选项。这应该可以做到,通过预取,它应该可以消除在项目端加载选项时的延迟。