Fair enough.
The situation is that as part of the view update, my database model is
calculating what inputs it needs displayed by passing a form data structure
to the view component which renders it in HTML. The current type is:
type Field =
DropdownField { name: String, key : String, choices: (List String),
del: Bool }
| FreeformField { name: String, key : String, del: Bool }
| NumberField { name: String, key: String, min: Int, max: Int, del: Bool }
There's two problems. First of all, there's some common validation done
before any field is displayed involving checking that the key exists in the
database (which is a Dict) and getting its value. At the moment, in order
to do that I have to have a function
fieldKey x = case x of
DropdownField df -> df.key
FreeformField ff -> ff.key
NumberField nf -> nf.key
which seems a bit awkward. As I understand it I could use a generic record
instead by removing the tags on the field types above, but that creates the
problem that if the function that does the preprocessing accepts the value
as a generic record { key: String } then it can't call the function to
render the field because that requires all the components of the record.
The second problem is that "del" field. It represents if the field can be
deleted or not. It's a pain to have to constantly indicate it when it's in
practice the same for all fields in any given form, but having to pass the
form as well as the field to the field renderer is rather awkward, and as I
understand it Elm doesn't support pointers so I can't put a reference back
to the parent form in the field object.
Mark
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.