前言:
根据thingsboard需求,需要设计动态表格的点击跳转,实现Entities table动作来控制点击不同行跳转到不同的状态表。
1.创建一个Entities table
1.1新增一个仪表板库
1.2添加一个 Entities table部件
创建实体列表别名:
添加成功:
2.创建两个新的状态表
添加两个不一样仪表状态
3.创建动作
将下面代码复制进去:
//创建一个变量
var entitySubType;
//获取注入器
var $injector = widgetContext.$scope.$injector;
//用于获取实体(设备、资产等)详细信息的链式调用
$injector.get(widgetContext.servicesMap.get('entityService')).getEntity(entityId.entityType, entityId.id)
//data参数包含从服务器返回的实体详细信息
.subscribe(function(data) {
//将实体name赋值给entitySubType
entitySubType = data.name;
//开始判断,根据实体名跳转
if (entitySubType == 'test') {
//跳转到新状态表的方法
openDashboardStates('test');
} else if (entitySubType == 'test-test') {
openDashboardStates('test_test');
}
});
//创建方法跳转新的状态表
function openDashboardStates(statedId) {
var stateParams = widgetContext.stateController.getStateParams();
var params = {
entityId: entityId,
entityName: entityName
};
if (stateParams.city) {
params.city = stateParams.city;
}
widgetContext.stateController.openState(statedId, params, false);
}