QuarkIoE - 自定义小部件配置

时间:2018-01-24 09:42:02

标签: cumulocity

我在cumulocity平台上编写了一个图表小部件。 在小部件中随附平台, 我选择设备后可以选择数据点: enter image description here

但我写的小部件只能选择设备,没有数据点选项供我选择: enter image description here

我知道有c8yComponentsProvider可供我选择是否需要设备目标。有没有办法让我选择我想要的数据点?

2 个答案:

答案 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
            }
        }
    }
}