You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为嵌入式Looker仪表盘新增筛选器

问题核心原因

dashboard:load 事件仅用于仪表盘首次初始化加载阶段,已经完成渲染的仪表盘触发该事件不会触发筛选器逻辑,所以你的现有代码不生效。
dashboard:filters:update 接口的限制是无法新增仪表盘本身未预先配置过的筛选器,不是不能修改已存在的筛选器值,根据你的需求场景对应不同方案:


场景1:你要添加的「Company Name」筛选器已经在仪表盘后台配置过,只是默认未赋值

直接用dashboard:filters:update事件即可实现,修改后自动刷新数据的代码如下:

const handleButtonClick = () => {
    const lookerIframe = document.querySelector('iframe')?.contentWindow;
    if (!lookerIframe) return;
    const eventPayload = {
        type: "dashboard:filters:update",
        filters: {
            "Company Name": "XYZ Corp"
        },
        run: true
    };
    lookerIframe.postMessage(
        JSON.stringify(eventPayload),
        lookerDashboardUrl
    );
}

场景2:你要添加的是仪表盘后台没有配置过的临时筛选器

需要先确认你生成嵌入式Looker iframe的签名URL时,已经开启了allow_dynamic_filters权限,之后直接触发dashboard:run事件携带临时筛选器参数即可:

const handleButtonClick = () => {
    const lookerIframe = document.querySelector('iframe')?.contentWindow;
    if (!lookerIframe) return;
    const eventPayload = {
        type: "dashboard:run",
        additional_filters: [
            {
                // 替换为你Looker数据模型中对应的字段完整路径,区分大小写
                field: "your_view_name.company_name",
                operator: "equals",
                value: "XYZ Corp",
                runtime: true
            }
        ]
    };
    lookerIframe.postMessage(
        JSON.stringify(eventPayload),
        lookerDashboardUrl
    );
}

额外注意

  • 临时筛选器默认不会显示在仪表盘顶部的筛选栏中,如果需要对用户可见,需要你在父页面自行实现筛选器展示和同步逻辑
  • 所有筛选器的字段名、运算符需要和Looker模型配置完全匹配,否则会静默失效

内容的提问来源于stack exchange,提问作者Brady Dowling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:06:05