google-app-maker - Google 应用制作工具表查询 _notContains 不起作用
问题描述
应用制作工具 > 页面 > 表格 > 事件 > 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 的过滤器也可以。
谁能说出为什么?或者更好的问题是:如何在应用程序制造商中设置过滤后的表格视图?
再次:您如何为您的表格准确设置过滤器?
解决方案
根据官方文档:
过滤器startsWith、notStartsWith、contains、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();
它将返回零个结果,因为加载的所有记录都包含 string 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();
推荐阅读
- chatbot - 如何连接 Bitrix24 聊天机器人
- cisco-ios - 将 CLI 输出加载到 Cisco Genie/pyats 解析器?
- jquery - :contains() 选择器 - 如何忽略区分大小写?
- javascript - 如何使用 let 和 async 将 deepai 输出 blob 保存到文件
- react-native - 世博会加密存储信用卡信息是否安全?
- qt - MouseMoveEvent 停止被调用
- c++ - 从类中的模板函数调用模板函数
- javascript - 使用 JavaScript 删除字符串空格、回车、换行和制表符
- python - 将系列转换为数据框并重命名
- powershell - How to change the URL in an Edge tab with Powershell