edit-select
Overview
This editable cell type allows users to pick a value from a predetermined set of options. It is different to edit-typeahead in that it uses the underlying operating system select native UX to provide options.
Basic Example
<object-table ...>
<column display="{field}">
<edit-select options="$:getColorOptions()" value="$object.favorite_color" on-change="$:updateFavoriteColor($object, newValue, oldValue)" />
</column>
</object-table>function getColorOptions() {
return ["Red", "Purple", "Blue", "Green", "Yellow"];
}
function updateFavoriteColor(obj, newValue, oldValue) {
obj.favorite_color = newValue;
obj.save();
}
Standard Attributes
on-change
on-changeoptions
optionsRequired
Default: unset
Specifies an array of options to list when the user activates the edit-select cell.
There are three possible ways to provide options to edit-select:
1. Simple array (set)
This function is useful if the options represent the underlying data (display value == key value)
function getOptions(){
return [ "apple", "pear", "orange" ]
}2. Simple object (map)
This function is useful when the key and display values differ (display value != key value)
JS
function getOptions(){
return {
a: 'Apple',
p: 'Pear',
o: 'Orange'
}
}3. Advanced array (collection)
An advanced array enables one to build up a collection of objects dynamically. Having data in this format makes it easy to use 3rd party libraries such as Lodash or native map, filter or reduce functions.
JS
function getOptions(){
return [
{ key: "a", value: "Apple" },
{ key: "p", value: "Pear" },
{ key: "o", value: "Orange" },
]
}4. Row $object
Since JourneyApps Runtime version 4.90.4 you can pass the table row ($object) to the options attribute. This is useful if you want to generate dynamic options based on the specific object.
<column heading="Fruit">
<edit-select options="$:getOptions($object)" value="$:getValue($object)" />
</column>JS
function getOptions(obj) {
// Do something with obj
if(obj.status == 'new') {
// Check if obj is still warranty
if(inWarranty(obj)) {
return ['Contact Support', 'Return']
}
return ['Log first service']
}
return ['Diagnose', 'Service', 'Scrap']
}value
valueAdvanced Attributes
disabled
disabledLast updated
