[英]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.cast
將GWT
dom實例轉換為elemental2
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.