【问题标题】:Thingsboard Alarm Widget - Custom Action for "On row click "Thingsboard 警报小部件 - “On row click”的自定义操作
【发布时间】:2020-04-16 16:43:52
【问题描述】:

我在更高级别的仪表板状态中有一个警报小部件,集中来自许多不同设备的警报。我需要实现以下内容:单击警报行时,需要打开一个新的仪表板状态,其中包含警报发起者设备的详细信息。为此,我正在使用“自定义操作”类型的小部件“行单击”操作。在我正在使用的代码下方:

var $injector = widgetContext.$scope.$injector;

$injector.get('deviceService').getDevice (entityId.id).then(function(device)
{
var params = {
entityId: entityId,
entityName: entityName
};

Widgetcontext.statecontroller.openState('operacao', params, false);
});

但是,当在小部件中单击一行时,什么也没有发生。

有人可以帮助理解我在这里做错了什么吗?

谢谢。

【问题讨论】:

    标签: thingsboard


    【解决方案1】:

    这可能会对您有所帮助:

    所以我用来从一个破折号移动到另一个破折号的代码是:

    ctx.stateController.updateState(page, params, false);
    

    这里的 page 是一个带有您在仪表板上设置的页面名称的 var

    params 通常需要传递 entityId 和 entityName:

    var params = {
        entityId: entityId,
        entityName: entityName,
        rowIndex: rowIndex
    }  
    

    差不多就是这样,这里的rowIndex是一个可以传递到下一页的值。

     $scope.doSomething = function($event) {
        if ($event) {
            $event.stopPropagation();
        }
    
        var rowIndex = $event.currentTarget.rowIndex;
        entity = self.ctx.defaultSubscription.data[0].datasource;
    
    
        var entityId = entity.entityId;
        var entityName = entity.entityName;
        var params = {
            entityId: entityId,
            entityName: entityName,
            rowIndex: rowIndex
        };
    
    
        var page = 'sets';
        ctx.stateController.updateState(page, params, false);
    }
    

    这是我如何使用它的一个例子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多