0

在我的视图层之一中,我有

  "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}]}}
}

这工作正常。但我也想从图表外部触发信号(不将其绑定到元素),就像View API docs 中解释的那样。

我尝试过类似的事情

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

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

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

selectedFeature {}

意味着信号name正在被拾取,但不是它的value. 应该是什么格式value

4

2 回答 2

0

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

于 2021-04-09T20:57:26.540 回答
0

我通过使用 vegaInstance.view.signal('selectedFeature**_tuple**', {...}) 而不是 vegaInstance.view.signal('selectedFeature', {...}) 更新选择解决了同样的问题。从这里得到

于 2021-11-05T23:17:15.313 回答