Tuesday, December 19, 2017

Re: JsInterop Array

This is not "garbage", they are "expando properties".
It shouldn't be a problem in practice for any well-coded JS lib. If your JS lib fails here, it probably means it iterates over the array using a for…in loop: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in#Array_iteration_and_for...in
As a workaround, you can probably copy the array into a JsArrayInteger:
JsArrayInteger arr = JavaScriptObject.createArray().cast();
for (int node : nodes) {
  arr
.push(node);
}
or using Elemental2 Core:
JsArray<Double> arr = new JsArray<>();
for (int node : nodes) {
  arr
.push(node)
}




On Tuesday, December 19, 2017 at 8:18:00 AM UTC+1, cesar paulo alves wrote:
Hello guys, so I'm getting crazy with this.

I need to inject a java array inside a javascript library.

The problem is that the Js library will iterate over an integer array, and if the element is not an integer it exits the function.
When I create the integer array and pass it to plain javascript array, for some reason it carries garbage inside, I already tried everything with no success.

So this is my java nodeset (https://pastebin.com/AdJqj80p)


I'm using the gwt-interop-utils -> https://github.com/GWTReact/gwt-interop-utils/blob/master/src/gwt/interop/utils/client/plainobjects/JsPlainObj.java


And when I inspect the javascript object in the browser you can see it has lots of garbage, and I cant clean it. See the nodes array I have (_clazz_0_g$,__elementTypeCategory$,_elementTypeId$"......).


And when I do the same with Js I don't have this garbage (obvious).



I already used the JsArray and everything, but no luck =/.


Do you have any Idea how to have a plain javascript array with jsInterop?


Thanks a lot.





--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment