我想从客户端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();
}
以上这些都不起作用。每次我得到相同的堆栈跟踪
未捕获的TypeError:this.notifyServer不是函数
答案 0 :(得分:0)
我解决了这个问题。我忘了包装器的this
仅在连接包装器的范围内可用。所以为了调用函数,我必须这样做:
var serverObject;
window.demo_test_Test = function() {
serverObject = this;
}
function test(){
serverObject.notifyServer();
}