Sist endret: 19. des. 2024

Statiske svaralternativer og enkle kodelister

Svaralternativer som ikke endrer seg, men som kan filtreres

For enklere brukstilfeller er statiske svaralternativer og kodelister det letteste å sette opp. Disse kan enten settes direkte i komponentkonfigurasjonen (dette kaller vi ofte svaralternativer) eller i en json-fil i app-repositoriet (den enkleste formen for kodeliste). Hvilken metode som bør brukes avhenger av gjenbruksbehovet. Hvis flere komponenter skal bruke de samme svaralternativene, anbefales det å putte kodelisten i en json-fil og dermed gjøre den om til en kodeliste.

Legg merke til at selv om slike svaralternativer kan være helt statisk, er det også mulig å gjøre dem (litt mer) dynamiske ved å filtrere svaralternativene ved hjelp av et uttrykk. Ønsker du enda mer fleksiilitet, kan du også lage en egen kodebasert kodeliste.

I komponentkonfigurasjonen (svaralternativer)

I denne eksempelkonfigurasjonen er en Dropdown-komponent satt opp med en statiske svaralternativer. Egenskapen options er en liste med objekter, hvor hvert objekt representerer et svaralternativ. Egenskapen value er verdien som vil bli lagret i datamodellen når brukeren velger elementet. Egenskapen label er ledeteksten som vil bli vist til brukeren.

{
  "id": "some-dropdown-component",
  "type": "Dropdown",
  "textResourceBindings": {},
  "dataModelBindings": {
    "simpleBinding": "soknad.nyGaranti.loyvetype"
  },
  "options": [
    {
      "value": "1",
      "label": "Type 1"
    },
    {
      "value": "2",
      "label": "Type 2"
    },
    {
      "value": "3",
      "label": "Type 3"
    }
  ]
}

Fra JSON-filer (kodeliste)

Ved å legge json-lister i options-mappen i app repo vil appen automatisk lese denne filen og eksponere det gjennom options-APIet. Options filene må ligge under App/options/. Lager man f.eks land.json, kan man sette opp en komponent med egenskapen "optionsId": "land". Kodelisten kan hentes fra API via endepunktet {org}/{app}/api/options/land.

Kodelistene må følge et spesifikt format. Eksempel på en kodeliste som inneholder land (App/options/land.json):

[
    {
        "value": "norway",
        "label": "Norge"
    },
    {
        "value": "denmark",
        "label": "Danmark"
    },
    {
        "value": "sweden",
        "label": "country.label.sweden"
    }
]

label feltet kan inneholde en tekstnøkkel til teskstressursene eller ren tekst.

For å referere til denne kodelisten i en komponent, kan du bruke egenskapen optionsId i komponentkonfigurasjonen:

{
  "id": "some-dropdown-component",
  "type": "Dropdown",
  "textResourceBindings": {},
  "dataModelBindings": {
    "simpleBinding": "soknad.opphavsland"
  },
  "optionsId": "land"
}