Siparişler adlı bir sayfam ve OrderDetails adlı bir sayfam var. Mükemmel MVP tutorial'da açıklandığı gibi Tarih (bir ValueChangeListener ile) ve bir "olay veriyolu" HandlerManager ile çalışıyorum.Parametreleri geçirmek için GWT Geçmişi'ni mi kullanıyorsunuz?
Bir siparişi tıklattığında, bir siparişi tıklattıran, ancak OrderDetailPresenter öğesini oluşturan sipariş numarasına (ShowOrderDetailEvent öğesinde yer alan) geçen bir işleyicim var ve History.newItem("orderDetails")
numaralı telefonu arayın.
Bu birkaç önemli dezavantajı vardır: Bu yeni oluşturulan Tarih adım geçirildi hangi sırayla kimliği bilmeyen birine sipariş ayrıntıları sayfaya yer işareti (veya tarayıcılarında ileri geri gider) örneğin, bundan haberleri Yani. Sipariş detayı olmayan boş bir sayfa alacaksınız.
Benim soru: Ben yerine History.newItem("orderDetails?id="+id)
böyle bir şey yapmak ve sonra benim değer değişikliği dinleyici tarih belirteci ayrıştırmak mı? Öyleyse, argümanları bu şekilde bir dizeye ayrıştırmak ve biçimlendirmek için en iyi uygulama, bir API veya kitaplık var mı?
GWT (bahsettiğim konu aynı URL'ler birden fazla farklı tarayıcılarda çalışır sahip değil tüm çeşitli tarayıcılarda her birinde geçmişi belirteç yöntem işe sahip uğraşıyor olduğunu netleştirmek için Düzenlendi) Tarayıcılardaki farklılıkları dikkate alır. Hatta burada belirtilmeyen bir dizi farklı konuda çalışıyor. Yani, belirtilen karakterlerden herhangi birini kullanabilirsiniz. Bunu kontrol etmek istiyorsanız, sadece 'gwt-user.jar' (gwt 2.0) dosyasında' com.google.gwt.user.client.impl.HistoryImpl 'sınıflar bakabilirsiniz. Ve de kodlama yapar, böylece '@ 'içinde geçebilir ve bununla ilgilenir. –
Harika sesler. GMail'in de tam olarak bunu yaptığını fark ettim, örneğin bir etikete tıklarsam, URL "... # gelen kutusu/etiket adı" olarak değişir. URL, etiket adını kodlar, ancak aynı şeyi URL.encode ve URL.decode ile yapıyorum. – Epaga
Sadece eksiksiz olmak için. Eğer 'History.newItem (..)' seçeneğini kullanırsanız, kod çözme/kodlama yapmamalısınız, çünkü GWT zaten sizin için bunu yapar. Aslında bunu yaparsanız, Firefox hakkında bahsedilen sorunlara yol açabilir. –