Google App Maker表查询_notContains不起作用

时间:2019-11-30 17:32:12

标签: google-app-maker

App Maker>页面>表格>事件> onAttach

有效:

var datasource = widget.datasource;
datasource.query.filters.readByUsers._contains = 'Susanne';
datasource.load();

不起作用:

var datasource = widget.datasource;
datasource.query.filters.readByUsers._notContains = 'Susanne';
datasource.load();

任何带有_equals的过滤器也可以使用。

谁能说为什么? 也许更好的问题是: 如何在App Maker中设置过滤后的表格视图?

再次: 您如何为表格正确设置过滤器?

2 个答案:

答案 0 :(得分:0)

根据playground

  仅对字符串支持

过滤器 startsWith notStartsWith 包含 notContains

因此,如果您的字段是字符串字段,则它肯定可以工作。但是,我认为这行不通的唯一原因是,如果您要在另一个过滤器之上应用过滤器而没有先清除先前的过滤器。即,如果您运行以下代码:

var datasource = widget.datasource;
datasource.query.filters.readByUsers._contains = 'Susanne';
datasource.load();

仅在字段 readyByUsers 包含字符串Sussane的情况下返回结果。如果在那之后运行代码:

var datasource = widget.datasource;
datasource.query.filters.readByUsers._notContains = 'Susanne';
datasource.load();

它将返回零结果,因为所有已加载的记录都包含字符串Susanne。因此,它可能会给您带来这样的效果,即它确实确实不起作用。

要确保您的过滤器正常工作,首先需要清除之前的过滤器,然后再应用新的过滤器,除非您明确希望在第一个过滤器的顶部应用第二个过滤器。为此,您需要运行 clearFilters 方法。因此您的代码应如下所示:

var datasource = widget.datasource;
datasource.query.clearFilters();
datasource.query.filters.readByUsers._contains = 'Susanne';
datasource.load();

或者这样:

var datasource = widget.datasource;
datasource.query.clearFilters();
datasource.query.filters.readByUsers._notContains = 'Susanne';
datasource.load();

答案 1 :(得分:0)

正确的答案是:

因为该字段为“空”

所以您需要添加过滤器“ _notEquals = null;”获得结果