0

私のGWTアプリケーションには、引数として配列の配列を必要とするjavascript関数があります。RPCを使用してデータを取得するので、データベースからList<List>を取得します。一種のツリービューを埋める必要があるため、これが必要です。たとえば、RPC呼び出しからこれを取得します:{"A"、 "A1"、 "A2"}、{"B"、 "B1"}、そしてこれをJavaScript関数に渡す必要があります:[["A "、" A1 "、" A2 "]、[" B "、"B1"]]。私のインターフェースで私は示したい:

A+
  A1
  A2
B+
  B1

JSNIを使用してJavaScript関数に渡すにはどうすればよいですか?

4

1 に答える 1

3

DevModeなしで生活できる場合(たとえば、SuperDevModeを使用しているため)、JavaアレイはJsArray*本番モードと同じであるためString[][]、と同じJsArray<JsArrayString>です。
DevModeには、JsArrayUtils役立つものがあります(DevModeでコピーを作成し、本番モードでそのまま返し、オーバーヘッドはありません)が、ネストされた配列(実際には文字列の配列でもない)ではないため、あなたの場合はそうではありません。

配列ではなくリスト、またはDevModeのサポートが必要/必要な場合は、データをにコピーする必要がありますJsArray<JsArrayString>

配列を使用できるがDevModeのサポートが必要な場合はGWT.isScript()、特定のコードブランチを作成するために使用できます。DevModeでコピーを作成し、配列をそのままprodモードで渡します(これは、とJsArray<JsArrayString>の2つのJSNIメソッドも意味します)JsArray<JsArrayString>String[][]

于 2012-09-24T08:28:13.947 に答える