在GWT 2.1+應用程序中,如何生成指向外部消費場所的鏈接?GWT錨點嗎?
例如,假設我想創建一個到Place1的鏈接。對於內部消費,我可以做presenter.goTo(new Place1("token"))
。我怎樣才能把它變成Anchor
或用戶可以粘貼到瀏覽器中的某種鏈接?
在GWT 2.1+應用程序中,如何生成指向外部消費場所的鏈接?GWT錨點嗎?
例如,假設我想創建一個到Place1的鏈接。對於內部消費,我可以做presenter.goTo(new Place1("token"))
。我怎樣才能把它變成Anchor
或用戶可以粘貼到瀏覽器中的某種鏈接?
如果您已經將該令牌映射到某個位置,只需使用與該令牌相同的href屬性創建一個錨點即可。
Anchor anchor = new Anchor("go to place1 ", "token");
這是我會怎麼做:
final Place1 place = new Place1("token");
Anchor anchor = new Anchor("go to place 1", "#" + placeHistoryMapper.getToken(place));
anchor.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
placeController.goTo(place);
event.preventDefault();
}
});
謝謝托馬斯,但是這是否仍然沒有得到前綴的問題? – Justin 2011-03-14 00:02:37
不,PlaceHistoryMapper是PlaceHistoryHandler用來生成和解析令牌的東西,它是(它必須!)完全瞭解PlaceTokenizer的前綴。 – 2011-03-21 22:57:50
據我知道,因爲我是新來的GWT我自己,如果你使用超鏈接,而不是錨,你將不必編寫事件處理程序。它會將您重定向到該地點並自動處理歷史記錄。
您可以使用PlaceHistoryMapper將場所轉換爲令牌字符串。有關如何在GWT中實施MVP設計的詳細信息,請參見https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces。
final YourImplementationOfPlaceHistoryMapper placeHistoryMapper = GWT.create(YourImplementationOfPlaceHistoryMapper.class);
final Hyperlink link = new Hyperlink("A Link To A Place", placeHistoryMapper.getToken(new YourNewPlace()));
不錯的解決方案,因爲它啓用了右鍵點擊開新標籤。 – 2012-06-18 07:54:13
MyView.ui.xml:
<g:InlineHyperlink ui:field="link">Link</g:InlineHyperlink>
MyView.java:
@UiField InlineHyperlink link;
public MyView() {
// ...
link.setTargetHistoryToken(getPlaceHistoryMapper().
getToken(new Place1("token")));
// ...
}
會不會將href必須'PlacePrefix:Token'?我怎樣才能以編程方式獲得'PlacePrefix'? – Justin 2011-03-08 15:09:41