我正在使用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
}
});
谢谢
答案 0 :(得分:0)
我在那里可以想到两个选择:
您可以在productSelect的构造函数中或在调用构造函数的代码中注册事件处理程序。加载组件时不会。
您可以检查HandlerRegistration API,它提供了有关处理程序如何注销自身的提示:
new MyHandler() {
HandlerRegistration reg = MyEvent.register(eventBus, this);
public void onMyThing(MyEvent event) {
/* do your thing * /
reg.removeHandler();
}
};