GWT引导程序提前输入事件监听器?

时间:2018-12-03 09:47:50

标签: gwt gwtbootstrap3

我正在使用GWTBootstrap3 Typeahead小部件。主要问题是事件没有取消注册,并且事件在我加载该组件时捆绑了很多次。默认情况下会缓存组件。第一个组件加载触发事件1次,第二个组件加载触发事件2次,依此类推。这引起了很多问题。我尝试了HandlerRegistration和removeHandler()无法正常工作。如果有人找到解决方案,请告诉我。

以下是注册事件的代码:

HandlerRegistration typeAheadListener = 
    productSelect.addTypeaheadSelectedHandler(new TypeaheadSelectedHandler<Part>() {
    @Override public void onSelected(TypeaheadSelectedEvent<Part> event) { 
        selectedPart = event.getSuggestion().getData(); // Handling the event 
    }
});

谢谢

1 个答案:

答案 0 :(得分:0)

我在那里可以想到两个选择:

您可以在productSelect的构造函数中或在调用构造函数的代码中注册事件处理程序。加载组件时不会。

您可以检查HandlerRegistration API,它提供了有关处理程序如何注销自身的提示:

new MyHandler() {
    HandlerRegistration reg = MyEvent.register(eventBus, this);

    public void onMyThing(MyEvent event) {
        /* do your thing * /
        reg.removeHandler();
    }
};