我有一个通过过滤
getAllInfos
方法生成的工作表列表。
现在我需要知道每张sheet是否已发布,我应该用什么方法找到它的属性?
let sheetList = [];
const app = useApp();
(async () => {
sheetList= (await app.getAllInfos()).filter((x)=> x.qType === 'sheet');
})();
getAllInfos()
只有 qid
和 qtype
,
我需要 Published 的属性:布尔值。
我搜索了文档,但我不知道如何使用其中一些方法,所以我不确定该使用哪一个:
您可以使用 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
和“已发布”状态。