dashjoin / json-schema-form

Angular JSON Schema Form Library
https://dashjoin.github.io/
Apache License 2.0
86 stars 27 forks source link

Allow choicesUrl to include parts of the current JSON object #147

Open aeberhart opened 2 years ago

aeberhart commented 2 years ago

In forms, the choices of one input field often depend on another field. For instance, choosing a country (e.g. US) would restrict the state choices to AL, AR, AK, ....

We could achieve this in two ways / syntaxes:

1) JavaScript template literal (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals): choicesUrl = /get/states/$ {country}. This is more readable but raises the question what kind of expressions are allowed. For instance, Can we use a more complex expression like $ {address[1].state}?

2) Allowing choicesUrl to be computed using a JSONata expression, similar to this "compute" example: https://dashjoin.github.io/#/example/compute. Less readable, since the expression requires JSONata string concat and escaped quotes. We have the full flexibility though.