【问题标题】:What should the value parameter look like when programmatically triggering a signal in Vega?在 Vega 中以编程方式触发信号时 value 参数应该是什么样子?
【发布时间】:2021-07-04 10:12:39
【问题描述】:

在我的视图层之一中

  "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应该是什么格式?

【问题讨论】:

    标签: vega vega-embed


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我通过使用 vegaInstance.view.signal('selectedFeature**_tuple**', {...}) 而不是 vegaInstance.view.signal('selectedFeature', {... })。从here得到那个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-04
        • 2016-11-06
        • 2013-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多