Advanced expressions
Use Advanced Expressions to filter an array of records to display specific data and perform expression transformations over the data.
Examples and code snippets
Create a filtered list from an array of records

We will display a list of people from the array of records, then filter them and display those that have entered a name. We will display their initials as a left avatar and add a label to each list item to display whether they are registered.
See the full example in GitHub.
title: List with advanced Expressions
type: jig.list
datasources:
people:
type: datasource.static
options:
data:
- id: 1
firstname: Mark
lastname: Dobrew
email: [email protected]
mobile: 783432565
registered: false
- id: 2
firstname: Astra
lastname: Courts
email: [email protected]
mobile: 437874221
registered: false
- id: 3
firstname: Jane
lastname: Doe
email: [email protected]
mobile: 783432531
registered: true
- id: 4
firstname: ''
lastname: ''
email: [email protected]
mobile: 783432531
registered: true
data: [email protected][firstname != '' and lastname != '']
item:
type: component.list-item
options:
title: "[email protected]
& ' ' &
@ctx.current.item.lastname"
subtitle: ='Phone:' & @ctx.current.item.mobile
description: ='Email:' & @ctx.current.item.email
style:
isHighlighted: "[email protected] = true
? true:false"
label:
title: "[email protected] = true
? 'Registered':'Not registered'"
color:
- when: [email protected] = true
color: color2
- when: [email protected] = false
color: color4
leftElement:
type: avatar
text: "=$substring(@ctx.current.item.firstname,0,1)
& $substring(@ctx.current.item.lastname,0,1)"Define functions to run the expressions
As part of advanced expressions, you can define functions that will run the expressions. It can be a function for date transformations, maths calculations, or any string transformations. By using functions you will have cleaner code that is easier to read.

This example shows a simple function that will divide the number from the datasource.
See the full code sample in GitHub.
datasources:
number-data:
type: datasource.static
options:
data:
- id: 1
number: 2500
children:
- type: component.entity
options:
children:
- type: component.entity-field
options:
label: Expression to get result divided by 10
value: =($b := function($l, $w){ $l / $w }; $b(@ctx.datasources.number-data.number,10);)Last updated
Was this helpful?