我想在我的GWT網絡應用程序中添加一個搜索欄,它利用了InputElement和AutoComplete。搜索欄基本上是爲了在GoogleMap上搜索位置。 這裏是我到目前爲止做出的代碼:GWT:UiBinder + InputElement
@UiField
InputElement input;
//
//
//
final Autocomplete autocomplete = Autocomplete.create(input);
final InfoWindow infowindow= InfoWindow.create();
autocomplete.addPlaceChangedListener(new PlaceChangedHandler(){
public void handle(){
PlaceResult place=autocomplete.getPlace();
String address=place.getAddressComponents().get(0).getShortName();
infowindow.setContent(place.getName()+", "+address);
addMarker(place.getGeometry().getLocation(),place,infowindow);
map.setCenter(place.getGeometry().getLocation());
map.setZoom(17.0);
}
});
//
//
//
<g:north size='5'>
<g:HTMLPanel>
<div>
<g:Label ui:field="label1">PublicFortress</g:Label>
</div>
<div>
<g:Anchor ui:field="signin" href="#">SignIn</g:Anchor>
<g:Button ui:field="home">Home</g:Button>
<div>
<input type="text" name="Search" ui:field="input" class="custom" />
</div>
</div>
</g:HTMLPanel>
</g:north>
我知道這是不是做的工作,因此我得到了以下錯誤的正確方法是:
com.google .gwt.core.client.JavaScriptException:(TypeError) @ com.google.maps.gwt.client.places.Autocomplete :: create(Lcom/google/gwt/dom/client/InputElement;)([JavaScript object( 30)]):$ wnd.google.maps.places未定義爲 ,位於com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:249)
請幫忙!
爲什麼不用代替? –
chkal
我嘗試使用g:TextBox,我得到了同樣的錯誤。 ,我沒有主要的變化是: 1)的搜索 \t 2)@UiField 文本框輸入; 3)最終自動完成自動完成= Autocomplete.newInstance(input.getElement(),null); –
Dexter
對不起,錯誤不一樣: com.google.gwt.core.client.JavaScriptException:(TypeError)@ com.google.gwt.maps.client.placeslib.Autocomplete :: createJso(Lcom/google/gwt/dom/client/Element; Lcom/google/gwt/maps/client/placeslib/AutocompleteOptions;)([JavaScript object(36),null]):$ wnd.google.maps.places is undefined – Dexter