update
parent
34b45442c1
commit
fec4a26637
57
README.md
57
README.md
|
@ -575,29 +575,6 @@ Now, the `full_name` field in each array element will watch the `first_name` and
|
||||||
Watching fields by itself doesn't do anything. For the example above, you need to tell JSON Editor that `full_name` should be `fname [space] lname`.
|
Watching fields by itself doesn't do anything. For the example above, you need to tell JSON Editor that `full_name` should be `fname [space] lname`.
|
||||||
JSON Editor uses a javascript template engine to accomplish this. A barebones template engine is included by default (simple `{{variable}}` replacement only), but many of the most popular template engines are also supported:
|
JSON Editor uses a javascript template engine to accomplish this. A barebones template engine is included by default (simple `{{variable}}` replacement only), but many of the most popular template engines are also supported:
|
||||||
|
|
||||||
* ejs
|
|
||||||
* handlebars
|
|
||||||
* hogan
|
|
||||||
* markup
|
|
||||||
* mustache
|
|
||||||
* swig
|
|
||||||
* underscore >=1.7 (since 1.4.0, see also [#332](https://github.com/json-editor/json-editor/pull/332))
|
|
||||||
|
|
||||||
You can change the default by setting `JSONEditor.defaults.options.template` to one of the supported template engines:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
JSONEditor.defaults.options.template = 'handlebars';
|
|
||||||
```
|
|
||||||
|
|
||||||
You can set the template engine on a per-instance basis as well:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const editor = new JSONEditor(element,{
|
|
||||||
schema: schema,
|
|
||||||
template: 'hogan'
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
Here is the completed `full_name` example using the default barebones template engine:
|
Here is the completed `full_name` example using the default barebones template engine:
|
||||||
|
|
||||||
```js+jinja
|
```js+jinja
|
||||||
|
@ -622,40 +599,6 @@ Here is the completed `full_name` example using the default barebones template e
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
It is also possible to set the "template" property to a JavaScript callback function, defined under `window.JSONEditor.defaults.callbacks.template`. Inside the JavaScript callback, you have access to all the variables defined under the `watch` property + the current editor.
|
|
||||||
|
|
||||||
|
|
||||||
Example Schema:
|
|
||||||
```js+jinja
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"first_name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"last_name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"full_name": {
|
|
||||||
"type": "string",
|
|
||||||
"template": "callbackFunction",
|
|
||||||
"watch": {
|
|
||||||
"fname": "first_name",
|
|
||||||
"lname": "last_name"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Example Callback function:
|
|
||||||
```js+jinja
|
|
||||||
window.JSONEditor.defaults.callbacks.template = {
|
|
||||||
"callbackFunction": (jseditor,e) => {
|
|
||||||
return e.fname + " " + e.lname;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### Enum Values
|
### Enum Values
|
||||||
|
|
||||||
Another common dependency is a drop down menu whose possible values depend on other fields. Here's an example:
|
Another common dependency is a drop down menu whose possible values depend on other fields. Here's an example:
|
||||||
|
|
Loading…
Reference in New Issue