Returns the value of the field. This will always be an object as some fields can have multiple values (e.g., Address field can have Address1, Address2, City, Province, Country values)
Sets an override search function for searchable fields (Dropdowns, etc.)
Implementing a custom local search
field.setSearchFunction((query, fieldId, options) => {
return new Promise((resolve) => {
// if the field is field 1, it should not show invalid options for this specific field
resolve(options.filter(o => (query && o.label.indexOf(query) !== -1) && (fieldId !== '1' || o.value !== 'invalid')));
});
});
Implementing a custom remote search
field.setSearchFunction((query, fieldId, options) => {
return fetch(`https://my-endpoint/options?query=${query}&id=${fieldId}`)
.then(resonse => {
// for an endpoint with a JSON payload
return resonse.json();
}).then(data => {
// endpoint doesn't return field options, but some other custom model
return data.items.map(i => ({ label: i.text, value: i.key, id: i.key }));
});
});
Sets the field to a safe empty value (according to its type).