Ga naar hoofdinhoud

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
argumenttypebeschrijving
propertystringDe databinding-eigenschap om te controleren
valueanyDe 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
argumenttypebeschrijving
field1stringLinker waarde
operatorstringVergelijkingsoperator (zie tabel hieronder)
field2stringRechter waarde
operatorbeschrijving
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
argumenttypebeschrijving
valueanyDe te controleren waarde
lowerBoundanyOndergrens (inclusief)
upperBoundanyBovengrens (inclusief)
fieldTypestringOptioneel: 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
argumenttypebeschrijving
propertystringDe databinding-eigenschap om te testen
valuestringKommagescheiden 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
argumenttypebeschrijving
arrayarrayDe lijst om te controleren
propertystringDe eigenschap op elk item om te controleren
valueanyDe 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
argumenttypebeschrijving
arrayarrayDe lijst om te controleren
propertystringDe eigenschap op elk item om te vergelijken
operatorstringVergelijkingsoperator (zie tabel hieronder)
valueanyDe waarde om mee te vergelijken
fieldTypestringOptioneel: stel in op number voor numerieke vergelijking
operatorbeschrijving
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
argumenttypebeschrijving
propertystringDe te controleren eigenschap
allowEmptystringOptioneel: 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
argumenttypebeschrijving
propertyNamestringDe 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
argumenttypebeschrijving
propertystringDe te testen tekenreeks
valuestringDe zoektekenreeks
isCaseInsensitivestringOptioneel: stel in op 'true' om hoofdletters te negeren
matchPositionstringOptioneel: 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}}