Cumulocity - 自定义小部件配置

Cumulocity - Custom widget configuration

我正在 cumulocity 平台上编写图表小部件。 在平台自带的widget中, 在 select 设备之后,我可以 select 数据点:

但是我写的widget只能select设备,没有数据点选项让我select:

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

您可以在 c8yComponentsProvider 的选项中禁用设备选择器:

options: {
  noDeviceTarget: true
}

然后在您的小部件配置中使用以下指令 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 是非官方指令。如果您遇到任何问题或想要特定的外观,您可以通过编写自己的指令来更快。

从angular2开始就得这样了

在我的自定义小部件项目中,我添加到 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
            }
        }
    }
}