google-app-maker - 从单个搜索框查询 Google AppMaker 中的多个数据源
问题描述
我正在尝试从同一个文本框中查询 2 个数据源,如何更新我的服务器端查询脚本?
我已经修改了现有的 Google 的供应商评级 AppMaker 模板,并对其进行了自定义以供我们内部使用。
在应用程序中,我添加了一个新的数据源 - 与联系人数据源具有多对多关系的类别。
如果我正在寻找 SearchText 与联系人数据源中的字段匹配的内容,则在联系人页面的标题中,搜索栏确实有效。
我成功地将 Category 的 Dropdown 链接到新的查询参数 SearchCategory。
我不知道如何让 SearchText 也查询 Category 数据源以查看它是否与现有 Category 匹配,如果匹配,也返回这些联系人。
我在下面包含了我修改后的 getContacts_ 函数的副本。
function getContacts_(query) {
if (query.parameters.SearchCategory === null) {
query.where = '(FirstName contains? :SearchText or CellPhone contains? ' +
':SearchText or Email contains? :SearchText or CompanyName contains? :SearchText or Website contains? :SearchText or LastName contains? :SearchText or OfficePhone contains? :SearchText)';
return query.run();
} else {
var contacts = []; // blank array
var newQuery = app.models.Contact.newQuery({sorting: query.valueOf().sorting});
newQuery.where = '(FirstName contains? :SearchText or CellPhone contains? ' +
':SearchText or Email contains? :SearchText or CompanyName contains? :SearchText or Website contains? :SearchText or LastName contains? :SearchText or OfficePhone contains? :SearchText)';
newQuery.parameters.SearchText = query.parameters.SearchText;
newQuery.parameters.View = query.parameters.View;
contacts = newQuery.run();
if (query.parameters.SearchCategory !== null) { //Strictly enforced, returns TRUE - Category is not NULL
var category = app.models.Category.getRecord(query.parameters.SearchCategory);
var categoryContacts = category.Contact.map(function(c) {
return c._key; });
contacts = contacts.filter(function(c) {
return categoryContacts.indexOf(c._key) > -1;
});
}
var contactsArray = [];
for (var k = 0; k < contacts.length; k++) {
contactsArray.push(contacts[k]);
}
var result = contactsArray;
// Apply paging params
return result.slice(query.offset, query.offset + query.limit);
}
}
我希望能够使用搜索栏返回 SearchText 与类别名称匹配的联系人。IE。“零售”
任何意见是极大的赞赏!
解决方案
推荐阅读
- laravel - 全新安装 Homestead / Vagrant / Laravel 的 npm 权限问题
- c# - 我正在尝试下载谷歌驱动器中的所有 pdf 文件,但未能保存位于谷歌驱动器中的每个 pdf
- java - 关于火花摄取的查询。[爪哇]
- c++ - 数组不存储超出第一个空间
- msbuild - 代码在 VS (2017) 中构建良好,但不是 msbuild 或 TFS “程序集清单与程序集引用不匹配
- wordpress - 如何在生成更扁平的“/product-name/”变体的同时维护结构化 URL?
- c# - 使用方法 RemoveRange 时 List 中的 ArgumentOutOfRange
- javascript - 如何在 Aurelia 中注入/替换部分视图和视图模型
- php - php - 准备好的语句未执行
- javascript - 未通过初始化设置 Materializecss 日期