Frage

Ich habe eine GWT Places / Activities-Webanwendung.Ich verwende das Anchor-Ereignis von click, um Benutzer an einen neuen "Ort" zu verschieben, sodass Benutzer keinen "Link" in einem neuen Fenster oder einer neuen Registerkarte öffnen können.Die Frage ist - wie mache ich all diese Links real?

War es hilfreich?

Lösung

Anstatt Anchor zu verwenden und den ClickEvent anzuhören, verwenden Sie möglicherweise Hyperlink, wobei der targetHistoryToken auf den Ortsnamen gesetzt ist.

z. B.

<g:Hyperlink text="Home" targetHistoryToken="home" />

Andere Tipps

Während die Verwendung eines Hyperlinks (oder InlineHyperlinks) funktioniert, würde ich lieber einen ClickHandler für einen Anchor verwenden, da sich die URL noch nicht geändert hätte, wenn eine Aktivität einen Wert ungleich Null im mayStop zurückgegeben hätte (während bei einem Hyperlink)Dies wäre der Fall, selbst wenn der Benutzer die Navigation abbrechen möchte.

Um das Ziel (href) auf dem Anchor festzulegen, verwenden Sie einfach Ihren PlaceHistoryMapper.Verwenden Sie den HyperlinkImpl erneut, um Strg + Klick, Mittelklick und Rechtsklick korrekt zu handhaben:

Anchor anchor = new Anchor("text", "#" + placeHistoryMapper.getToken(targetPlace));
anchor.addClickHandler(new ClickHandler() {
   private static final HyperlinkImpl IMPL = GWT.create(HyperlinkImpl.class);

   @Override
   public void onClick(ClickEvent event) {
      if (IMPL.handleAsClick(event)) {
         placeController.goTo(targetPlace);
         event.preventDefault();
      }
   }
});

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top