Thanks,followed your suggestion,changed to
|private final native <T> Tget(String key)/*-{
return $wnd[key];
}-*/;
private final native void set(String key, Object value)/*-{
$wnd[key] = value;
}-*/;|
It works now.
On 11/02/2014 06:18 PM, Ignacio Baca Moreno-Torres wrote:
I'm not sure but... "return $wnd.key;" is the same as "return
$wnd['key'];" which is not what you want, you should use "return
$wnd[key];".
On Sunday, November 2, 2014 8:28:12 AM UTC+1, Alex Luya wrote:
I am trying to use JSNI to set/get variable to/from js
object:window like this:
|private final native <T> Tget(String key)/*-{
return $wnd.key;
}-*/;
private final native void set(String key, Object value)/*-{
$wnd.key = value;
}-*/;|
and if I set a variable: var_1 to window: (the definition of
IdNameImpl is listed in the end)
|IdName var_1=IdNameImpl.create("id_1","name_1");
set("key_1",var_1);|
then
|get("key_1")|
I will get var_1 correctly
and then set another variable var_2 to window
|IdName var_2=IdNameImpl.create("id_2","name_2");
set("key_2",var_2)|
then,try to get key_1 again
|get("key_1")|
unexpectedly,var_2 will be returned
so,the problem is obvious:the get() method will always return the
last set variable no matter what key is.Questions are:
|1,Why?
2,How to make it right?|
|Blow is definition of IdNameImpl|
|public class IdNameImpl extends JavascriptObject implements IdName
{
public static final IdName create(String Id,String Name)/*-{
var o=new Object();
o.Id=Id;
o.Name=Name;
return o;
}-*/;
protected IdNameImpl()
{
}
@Override
public final native String getName()/*-{
return this.Name;
}-*/;
@Override
public final native void setName(String Name)/*-{
this.Name = Name;
}-*/;
@Override
public final native String getId()/*-{
return this.Id;
}-*/;
@Override
public final native void setId(String Id)/*-{
this.Id = Id;
}-*/;
}|
--
You received this message because you are subscribed to a topic in the
Google Groups "Google Web Toolkit" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/google-web-toolkit/_9T201GGrkY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
[email protected]
<mailto:[email protected]>.
To post to this group, send email to
[email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Google
Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.