在 Vega 中以编程方式触发信号时,value 参数应该是什么样的?

问题描述

在我的视图层之一中

  "params": [
    {
      "name": "selectedFeature","select": {
        "type": "point","fields": ["order"]
      }
    }

我正在使用 vega-embed添加一个信号侦听器。

vegaInstance.view.addSignalListener('selectedFeature',async function (signalName,e) {
    console.debug(signalName,JSON.stringify(e))
    // Returns e.g. 
    // selectedFeature {"order":[2],"vlPoint":{"or":[{"order":2}]}}
}

这行得通。但我也想从图表外部触发信号(不将其绑定到元素),就像解释 in the View API docs 一样。

我尝试过类似的事情

vegaInstance.view.signal('selectedFeature',{order: 2})

vegaInstance.view.signal('selectedFeature',{
    order: [2],vlPoint: {
        or: [{
            order: 2
        }]
    }
});

但没有运气。调试消息日志打印出来

selectedFeature {}

意味着信号 name 被拾取,但不是它的 valuevalue 应该是什么格式?

解决方法

我通过添加一个隐藏的输入字段并将参数绑定到该输入字段来解决它。然后我在该输入字段上触发一个输入事件。