B4J Question [WebApp] How to use WS.EvalWithResult()?

Kiffi

Well-Known Member
Licensed User
Longtime User
Hello,

i have add dynatree to my index.html and now i want to get the active treenode.

in JavaScript, the following snippet works for me:

B4X:
$( "#myButton" ).on( "click", function() {
    var tree = $("#dynatree").dynatree('getTree');
    var activeNode = tree.getActiveNode();
    alert(activeNode);
});

now i want to do the same in a B4J-WebApp (Websocket).
I get the click-event and execute the following EvalWithResult():

B4X:
Dim Tree As Future = _
  WS.EvalWithResult("$(arguments[0]).dynatree('getTree')", _
  Array As Object(DynaTree.Id))

Log("Tree: " & Tree.Value)

(DynaTree.Id contains the correct value #dynatree)

... but unfortunately Tree.Value is always null.

My Question: is my EvalWithResult()-Call correct? I didn't find an example how to use it.

Thanks in advance & Greetings ... Peter
 

Kiffi

Well-Known Member
Licensed User
Longtime User
Hello Erel,

whow! Faster than lightning!

already tried. With 'return $(...' i get a uncaught TypeError (see attachment).

Thanks & Greetings ... Peter
 

Attachments

  • 2014-04-29_152449.png
    6 KB · Views: 269
Upvote 0

Kiffi

Well-Known Member
Licensed User
Longtime User
You are trying to return an object that cannot be sent as is. You should instead return only the id or some other property.
ah, ok, i see.

B4X:
Dim ActiveNodeTitle As Future = _
WS.EvalWithResult("return $(arguments[0]).dynatree('getActiveNode').data.title", _
Array As Object(DynaTree.Id))
   
Log("ActiveNode: " & ActiveNodeTitle.Value)

Now it works like a charm.


Thanks a lot & Greetings ... Peter
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…