Conditionele logica
Met logica-helpers kun je sjablooninhoud voorwaardelijk tonen of verbergen op basis van veldwaarden, vergelijkingen, lijstlidmaatschap en tekenreeksovereenkomsten.
ifEquals
Controleert of een eigenschap gelijk is aan een specifieke waarde. Hoofdlettergevoelig.
ifEquals property value
| argument | type | beschrijving |
|---|---|---|
| property | string | De databinding-eigenschap om te controleren |
| value | any | De waarde om mee te vergelijken |
Voorbeeld
{{#ifEquals vessel.name 'Ocean Star'}}
Welcome back, Ocean Star!
{{else}}
Unknown vessel.
{{/ifEquals}}
ifCompares
Vergelijkt twee waarden met een relationele operator. De vergelijking is tekstgebaseerd, tenzij beide waarden numerieke tekenreeksen zijn.
ifCompares field1 operator field2
| argument | type | beschrijving |
|---|---|---|
| field1 | string | Linker waarde |
| operator | string | Vergelijkingsoperator (zie tabel hieronder) |
| field2 | string | Rechter waarde |
| operator | beschrijving |
|---|---|
| eq or == or = | field1 is gelijk aan field2 |
| noteq or != or <> | field1 is niet gelijk aan field2 |
| lt or < | field1 is kleiner dan field2 |
| lteq or <= | field1 is kleiner dan of gelijk aan field2 |
| gt or > | field1 is groter dan field2 |
| gteq or >= | field1 is groter dan of gelijk aan field2 |
Voorbeeld
{{#ifCompares cargo.tonnage '>' '50000'}}
Heavy cargo — notify port authority.
{{/ifCompares}}
ifBetween
Controleert of een waarde binnen een bereik valt (beide grenzen inclusief).
ifBetween value lowerBound upperBound fieldType
| argument | type | beschrijving |
|---|---|---|
| value | any | De te controleren waarde |
| lowerBound | any | Ondergrens (inclusief) |
| upperBound | any | Bovengrens (inclusief) |
| fieldType | string | Optioneel: stel in op number voor numerieke vergelijking |
Voorbeeld
{{#ifBetween cargo.tonnage '10000' '75000' 'number'}}
Tonnage within standard range.
{{else}}
Tonnage outside standard range.
{{/ifBetween}}
ifInArray
Controleert of de waarde van een eigenschap aanwezig is in een kommagescheiden lijst. Hoofdlettergevoelig.
ifInArray property value
| argument | type | beschrijving |
|---|---|---|
| property | string | De databinding-eigenschap om te testen |
| value | string | Kommagescheiden lijst met waarden om tegen te controleren |
Voorbeeld
{{#ifInArray portcall.portName 'Amsterdam,Rotterdam,Antwerp'}}
ARA range port confirmed.
{{else}}
Port outside ARA range.
{{/ifInArray}}
ifAny
Controleert of een item in een lijst een eigenschap heeft die overeenkomt met een specifieke waarde.
ifAny array property value
| argument | type | beschrijving |
|---|---|---|
| array | array | De lijst om te controleren |
| property | string | De eigenschap op elk item om te controleren |
| value | any | De waarde om mee te vergelijken |
Voorbeeld
{{#ifAny portcall.vessels 'cargoType' 'LNG'}}
LNG handling procedures apply.
{{/ifAny}}
ifAnyCompares
Controleert of een item in een lijst een eigenschap heeft die voldoet aan een vergelijking.
ifAnyCompares array property operator value fieldType
| argument | type | beschrijving |
|---|---|---|
| array | array | De lijst om te controleren |
| property | string | De eigenschap op elk item om te vergelijken |
| operator | string | Vergelijkingsoperator (zie tabel hieronder) |
| value | any | De waarde om mee te vergelijken |
| fieldType | string | Optioneel: stel in op number voor numerieke vergelijking |
| operator | beschrijving |
|---|---|
| eq or == or = | Eigenschap is gelijk aan waarde |
| noteq or != or <> | Eigenschap is niet gelijk aan waarde |
| lt or < | Eigenschap is kleiner dan waarde |
| lteq or <= | Eigenschap is kleiner dan of gelijk aan waarde |
| gt or > | Eigenschap is groter dan waarde |
| gteq or >= | Eigenschap is groter dan of gelijk aan waarde |
Voorbeeld
{{#ifAnyCompares shipments 'tonnage' '>=' '50000' 'number'}}
At least one shipment meets minimum tonnage threshold.
{{else}}
No shipments meet the minimum tonnage threshold.
{{/ifAnyCompares}}
ifIsNotNull
Controleert of een eigenschap niet null is. Optioneel worden lege tekenreeksen ook als null behandeld.
ifIsNotNull property allowEmpty
| argument | type | beschrijving |
|---|---|---|
| property | string | De te controleren eigenschap |
| allowEmpty | string | Optioneel: stel in op 'true' om lege tekenreeksen als null te behandelen |
Voorbeeld
{{#ifIsNotNull portcall.agent}}
Agent on record: {{portcall.agent}}
{{else}}
No agent assigned.
{{/ifIsNotNull}}
{{#ifIsNotNull portcall.agent 'true'}}
Agent on record: {{portcall.agent}}
{{else}}
No agent assigned (empty counts as null).
{{/ifIsNotNull}}
ifPropertyExists
Controleert of een eigenschapssleutel bestaat op een object, ongeacht de waarde (zelfs null, 0, false of een lege tekenreeks slagen voor deze controle).
ifPropertyExists propertyName
| argument | type | beschrijving |
|---|---|---|
| propertyName | string | De naam van de eigenschap om naar te zoeken |
Voorbeeld
{{#ifPropertyExists 'eta'}}
ETA field is present.
{{else}}
ETA field is missing from this record.
{{/ifPropertyExists}}
Gebruik dit wanneer je onderscheid wilt maken tussen een veld dat ontbreekt en een veld dat simpelweg een null- of lege waarde heeft.
ifStringIsMatch
Controleert of een tekenreeks overeenkomt met een waarde, met opties voor hoofdlettergevoeligheid en matchpositie. Standaard hoofdlettergevoelig.
ifStringIsMatch property value isCaseInsensitive matchPosition
| argument | type | beschrijving |
|---|---|---|
| property | string | De te testen tekenreeks |
| value | string | De zoektekenreeks |
| isCaseInsensitive | string | Optioneel: stel in op 'true' om hoofdletters te negeren |
| matchPosition | string | Optioneel: starts, ends, exact, of weglaten voor een deeltekenreeksmatch |
Voorbeeld
{{#ifStringIsMatch vessel.name 'Nordic'}}
Nordic fleet vessel detected.
{{else}}
Vessel name does not contain 'Nordic'.
{{/ifStringIsMatch}}
{{#ifStringIsMatch portcall.portName 'hamburg' 'true' 'ends'}}
Destination is Hamburg.
{{/ifStringIsMatch}}