reference to template var in action closure is copy
For inline actions it works fine. For named action definitions a reference to a template var uses a copy of that var, like in this failing example (when clicking “edit”,
showEdit
is not updated, so it will still render the “edit” button):Submitted by Elmer van Chastelet on 4 April 2019 at 12:09template agreedImprovements(evaluation : Evaluation, showEditArg : Bool){ var showEdit := false //showEditArg action openEdit(){ showEdit := true; replace( "agreed-improvements" ); } toggleFormHelper{ if( !showEdit){ submit openEdit(){ "edit" } } else { //inputs here } } } // form open/closed state has to be passed along with the form data to reconstruct // since there is no input control associated with it, have to use hidden input template toggleFormHelper( isEditing: ref Bool ){ dynamicform[ class = "form-horizontal" , role = "form" , all attributes ]{ <input type = "hidden" name = "isEdit" value = isEditing /> databind{ isEditing := getRequestParameter("isEdit") == "true"; } elements } }
Log in to post comments