[Ur] Weird behavior with dyn tags in recursive call

David Snider david at davidsnider.net
Tue May 10 09:25:21 EDT 2011


I was trying to modify the tree example to be a collapsing tree and when 
this renders the javascript ends up getting spewed out all over the 
form. It looks like it's getting escaped or something.

style treeView

functor Make(M : sig
                  type key
                  con id :: Name
                  con parent :: Name
                  con cols :: {Type}
                  constraint [id] ~ [parent]
                  constraint [id, parent] ~ cols

                  val key_inj : sql_injectable_prim key

                  table tab : ([id = key, parent = option key] ++ cols)
              end) = struct

     open M

     fun tree (f : $([id = key, parent = option key] ++ cols) -> xbody)
              (root : option M.key) =
         let
             fun recurse (root : option key) =
                 queryX' (SELECT * FROM tab WHERE {eqNullable' (SQL 
tab.{parent}) root})
                         (fn r =>
                             children <- recurse (Some r.Tab.id);
                 s <- source False;
                             return <xml>

<a onclick={set s True}> {f r.Tab}</a>
<dyn signal={v <- signal s;
                          if v then
                          return <xml><div>{children}</div></xml>
                          else return <xml/>}/>

</xml>)
         in
             recurse root
         end

end



More information about the Ur mailing list