master
Evan Chen 2021-11-24 17:11:46 +08:00
parent 34b45442c1
commit fec4a26637
1 changed files with 0 additions and 57 deletions

View File

@ -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: