在摘要JavaScript扩展class中调用JavaScript函数

Call JavaScript function in AbstractJavaScriptExtension class

我想在 vaadin 中调用 javascript 函数。它是 AbstractJavaScriptExtensionthis.callFunction("removeNode"); 不会触发 javascript 函数。这是一个错误还是我做错了什么?

@Override
public void remove() {
    super.remove();
    fireRemoveNode();
    this.callFunction("removeNode");
}

JavaScript代码:

window.vaadin_components_graph_Node = function() {
        var self = this;
        var state = this.getState();

...

        this.removeNode = function() {
            console.log("CALL FUNCTION", "remove node")
            $(node).remove();
        }
};

删除抽象JavaScript扩展后,您将无法调用JavaScript函数。尝试将此 JavaScript 调用置于另一个方法中,不要调用 remove();

虽然 user1411778 的回答是正确的,但您也可以使用以下方式调用 JavaScript 函数:

JavaScript.getCurrent().execute("removeNode()");

它应该一直有效。