我应该使用什么API来获取Nebula JS(QLIK扩展)中对象的属性

问题描述 投票:0回答:1

我有一个通过过滤

getAllInfos
方法生成的工作表列表。

现在我需要知道每张sheet是否已发布,我应该用什么方法找到它的属性?

let sheetList = [];
const app = useApp();
(async () => {
sheetList= (await app.getAllInfos()).filter((x)=> x.qType === 'sheet');
 })();

getAllInfos()
只有
qid
qtype
, 我需要 Published 的属性:布尔值。

我搜索了文档,但我不知道如何使用其中一些方法,所以我不确定该使用哪一个:

Qlik API 文档

qliksense
1个回答
0
投票

您可以使用 Qlik 引擎 API 提供的

getObject
方法。此方法从应用程序检索通用对象,并可以与
getLayout
方法组合来访问特定属性。

在您的情况下,要了解每个工作表是否已发布,您需要使用

qId
方法通过其
getObject
获取每个工作表,然后使用
getLayout
方法访问其属性:

let sheetList = [];
const app = useApp();
(async () => {
  const allInfos = await app.getAllInfos();
  sheetList = allInfos.filter((info) => info.qType === 'sheet');
  
  for (let i = 0; i < sheetList.length; i++) {
    const sheet = await app.getObject(sheetList[i].qId);
    const layout = await sheet.getLayout();
    console.log(`Sheet: ${sheetList[i].qId}, Published: ${layout.qMeta.published}`);
  }
})();
  • app.getObject(sheetList[i].qId)
    获取具有指定
    qId
    的对象(工作表)。
  • sheet.getLayout()
    返回工作表的布局,其中包含其属性。
  • layout.qMeta.published
    访问工作表的“已发布”属性。

这应该在控制台中记录每张工作表的

qId
和“已发布”状态。

© www.soinside.com 2019 - 2024. All rights reserved.