如何将新过滤器添加到嵌入式 Looker 仪表板

How to add new filters to an embedded Looker dashboard

我在 embedded Looker report and attempting to update the filters on it. It seems reasonable that the dashboard:filters:update 方法上使用 JavaScript 事件将允许我使用新过滤器更新仪表板,但文档明确提到无法完成此操作,但事实并非如此提及我实际上如何可以向仪表板添加新过滤器。

我是否需要 运行 带有 additional_filtersdashboard:load 事件作为负载对象的一部分传递?或者如何将过滤器添加到尚未应用任何过滤器的仪表板?有这样的例子吗?

我当前的代码(在单击按钮时触发)如下所示,但未应用过滤器:

    const handleButtonClick = () => {
        const lookerIframe = document?.querySelector('iframe')?.contentWindow;
        const eventPayload = {
            type: "dashboard:load",
            id: "looker_dashboard_id",
            dashboard_filters: {
                "Company Name": "XYZ Corp"
            },
        };
        lookerIframe.postMessage(
            JSON.stringify(eventPayload),
            lookerDashboardUrl,
        );
    }

是否有我应该触发的不同事件或我可以通过的不同 属性?

在这种情况下,这里的关键是“添加”过滤器的定义。出于我的目的,Company 筛选器已经存在于仪表板上,只是没有在 UI 中应用任何值。尽管它没有任何价值,但这并不意味着我必须“添加”它,运行这个事件仍然有效,因为它只是一个更新。

文档意味着如果您需要向仪表板添加一个全新的过滤器,那么您将需要通过 Looker 仪表板配置来完成此操作。