typescript - Hvordan deaktivere automatisk nøkkel-verdi sortering i Angular 6


Jeg har laget et array i min TS-fil og med ngFor henter jeg elementer fra arrayet, men når jeg bruker key value sorterer Angular automatisk arrayet. Hvordan beholde rekkefølgen slik arrayet ble laget.

TS-kode:

filterListingTypeItems: { [key: string]: object } = {


  'For sale': [
      'For sale',
      'By Agent',
      'By ownre',
      'New Construction',
      'Foreclosures',
      'Coming Soon',
    ],
    'Potential listings': [
      'Potential listings',
      'Foreclosed',
      'Pre-Foreclosure',
      'Make Me Move',
    ],
    'For Rent': ['For Rent'],
    'Recently sold': ['Recently sold'],
    _________________________: ['Open House only', 'Pending & Under Contract'],
}

HTML-kode (angular material):

<mat-optgroup
          *ngFor="let listingOptions of (filterListingTypeItems | keyvalue)"
          [label]="listingOptions.key"
        >
          <mat-option
            *ngFor="let listingOption of listingOptions.value"
            [value]="listingOption"
            >{{ listingOption }}</mat-option
          >
</mat-optgroup>

det blir slik (img)

Svar #1

du kan lage en funksjon som returnerer 0 i komponentens ts-fil.

function returnZero() {
return 0
}

Inni malfilen

<td *ngFor="let item of cfValues | keyvalue : returnZero">

Svar #2

Du laget ikke et array, men et objekt. Så det er ingen rekkefølge i utgangspunktet.

Hvis du trenger en rekkefølge, lag et array i stedet for et objekt.

filterListingTypeItems = [
  {
    key: 'For sale',
    value: [
      'For sale',
      'By Agent',
      'By ownre',
      'New Construction',
      'Foreclosures',
      'Coming Soon',
    ]
  },
  ...
]

Relaterte artikler