Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AbstractJavaScriptComponent客户端到服务器函数调用_Java_Vaadin - Fatal编程技术网

AbstractJavaScriptComponent客户端到服务器函数调用

AbstractJavaScriptComponent客户端到服务器函数调用,java,vaadin,Java,Vaadin,我想从客户端javascript调用服务器端函数。我不太确定我做错了什么: public class Test extends AbstractJavaScriptComponent { public Test() { addFunction("notifyServer", new JavaScriptFunction() { @Override public void call(JsonArray arguments) {

我想从客户端javascript调用服务器端函数。我不太确定我做错了什么:

public class Test extends AbstractJavaScriptComponent {

 public Test() {
    addFunction("notifyServer", new JavaScriptFunction() {

        @Override
        public void call(JsonArray arguments) {
            Notification.show("The client notified you!");

        }
    });
}
从Javascript connector.js我这样称呼它

function test(){
    this.notifyServer();
    notifyServer();
}
以上这些都不起作用。每次我都得到相同的stacktrace

未捕获类型错误:this.notifyServer不是函数


我解决了这个问题。我忘记了包装器的
仅在连接包装器的范围内可用。因此,为了调用函数,我必须这样做:

var serverObject;

window.demo_test_Test = function() {

    serverObject = this;
}

function test(){
    serverObject.notifyServer();
}