google-app-maker - 如何将两个不同的数据源绑定到一个公共下拉列表
问题描述
我需要将两个不同的数据源绑定并刷新到一个下拉列表。
数据源:
- 设备信息
- device_measurements
落下:
- 设备列表
由于所选项目应作为查询数据源的参数,所以我遇到的第一个困难是我无法将下拉列表的值绑定到两个数据源。
接下来的事情也是如此。
下拉列表的值设置为@models.device_info.datasources.device_info.properties.deviceId
Dropdown 的 onValueChange 事件设置为loadDeviceInformationDataSources();
loadDeviceInformation 定义为
function loadDeviceInformationDataSources() {
app.datasources.device_info.load();
}
每个数据源都有一个名为 deviceId(字符串类型)的参数并引用一个查询脚本:
- device_info 的查询脚本是
return getDeviceInformation(query);
- device_measurements 的查询脚本是
return getDeviceMeasurements(query);
最后,脚本是:
function getDeviceInformation(query) {
var deviceId = query.parameters.deviceId;
console.log('Get device information for:', deviceId);
var deviceInfo = firestore.getDocument('devices/' + deviceId);
var record = app.models.device_info.newRecord();
record.name = deviceInfo.fields.name;
record.online = deviceInfo.fields.online;
record.type = deviceInfo.fields.type;
record.brightness = deviceInfo.fields['state'].brightness;
record.on = deviceInfo.fields['state'].on;
var records = [];
records.push(record);
// Load measurements
var measurementsQuery = app.models.device_measurements.newQuery();
measurementsQuery.where = 'deviceId = :deviceId';
measurementsQuery.parameters.deviceId = deviceId;
measurementsQuery.run();
return records;
}
function getDeviceMeasurements(query) {
var deviceId = query.parameters.deviceId || 'device-01' ;
var records = [];
var deviceMeasurements = firestore.getDocuments('devices/' + deviceId + '/measurements');
deviceMeasurements.map(function(measure) {
var record = app.models.device_measurements.newRecord();
record.timestamp = measure.fields.timestamp;
record.intensity = measure.fields.intensity;
records.push(record);
});
return records;
}
为了显示数据,我每个数据源使用一个表。
每次我在下拉列表中选择一个设备并刷新相关表时,都会正确加载数据源 device_info。
至于数据源device_measurements,每次我在下拉列表中选择一个设备时都会加载数据源(我可以在登录到控制台时看到)但是相关的表没有被刷新(就像程序measurementsQuery.run();
不会告诉表刷新一样)。
问题:
- 难道我做错了什么?
- 有没有更好的方法来实现这一目标?
解决方案
推荐阅读
- awk - 用包含替换位数的模式替换字符串中的数字
- logging - 删除向导请求日志格式
- sparql - RDFLib 在小图上的第一次查询很慢(56 个三元组)
- ios - 如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?
- c++ - unordered_map 和 emplace,为什么 ctor 被调用两次?
- java - 由于 outputOptions 无法升级 asciidoctor
- generics - 具有通用类的 Jersey HK2 注入
- android - 如何为 DisplayManager 创建的 VirtualDisplay 指定 layerStack?
- pdf - 如何在 Edge 上更改 PDF 文件的字体?
- ada - 如何将 Ada 添加到 riscv-toolchain