我在cumulocity平台上编写了一个图表小部件。 在小部件中随附平台, 我选择设备后可以选择数据点:
我知道有c8yComponentsProvider
可供我选择是否需要设备目标。有没有办法让我选择我想要的数据点?
答案 0 :(得分:1)
您可以在c8yComponentsProvider
:
options: {
noDeviceTarget: true
}
然后在widget config html中使用以下指令:
<c8y-data-point-list datapoints="data.datapoints"></c8y-data-point-list>
您需要设置要在窗口小部件配置控制器上的data.datapoints
对象中选择的数据点。因此,您可以使用片段c8y_DataPoint
搜索托管对象。
在文档中是如何使用c8yInventory服务执行此操作的示例:
var filters = {fragmentType: 'c8y_DataPoint', withParents: true};
$scope.data = {};
c8yInventory.list(filters).then(function (devices) {
$scope.data.datapoints = [];
_.forEach(devices, function(dp) {
$scope.data.datapoints.push(dp);
});
});
请注意c8y-data-point-list
是非官方指令。如果你遇到任何问题或想要一个特定的外观,你可以通过编写自己的指令来加快速度。
答案 1 :(得分:0)
从角度2开始,必须以这种方式完成。
在我的自定义窗口小部件项目中,我如下添加到app.module.ts
的usedValue部分中。
useValue: {
id: 'acme.text.widget', // 3.
label: 'Text widget',
description: 'Can display a text',
component: WidgetDemo, // 4.
configComponent: WidgetConfigDemo,
data: {
ng1: {
options: {
noDeviceTarget: true
}
}
}
}