簡體   English   中英

Gwt elemental2:如何在gwt JavaScript對象和JsInterop對象之間轉換?

[英]Gwt elemental2: How can I convert between a gwt JavaScript object, and a JsInterop object?

可以說我有一個com.google.gwt.dom.client.Document gwtDocument節點,我想將其轉換為elemental2.dom.Document嗎?

由於Document擴展了JavaScriptObject,所以我假設我可以做類似的事情:

elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);

但是,使用jsinterop的elemental2類不會擴展JavaScriptObject。 那么如何在兩者之間轉換?

謝謝!

您可以先強制轉換為對象,然后強制轉換為元素類型(1)。 這有點丑陋,因此在GWT和J2CL中可以使用名為jsinterop-base的實用程序庫。 所述Js實用程序可用於cast (2)和uncheckedCast (3)的任何對象。 應該避免使用uncheckedCast ,只有在知道自己在做什么時才使用它(例如,在iframe之間進行轉換或其他特殊js情況)。

com.google.gwt.dom.client.Document gwtDocument = Document.get();
elemental2.dom.Document el1 = (elemental2.dom.Document) (Object) gwtDocument; //(1)
elemental2.dom.Document el2 = jsinterop.base.Js.cast(gwtDocument); //(2)
elemental2.dom.Document el3 = jsinterop.base.Js.uncheckedCast(gwtDocument); //(3)

因此,在客戶端代碼中,應使用Js.castGWT dom實例轉換為elemental2實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM