range

The range pipe generates an array of numbers within a specified range, making it ideal for creating dropdown options, pagination controls, or any scenario requiring numeric sequences in templates. When working with Angular templates, you may need to generate an array of numbers for iteration. For example, if you have the number 20 and want to create an array from 1 to 20 to display in a dropdown list, Angular's @for directive cannot directly iterate over a number. While you could generate this array in TypeScript, there are cases where creating the array directly in the template is more convenient.

Examples

Example 1: Basic Range

Generate arrays with different start and end values:

import {RangePipe} from 'ngx-lift';

@Component({
  imports: [RangePipe],
  template: `
    <p>{{ [1, 5] | range }}</p>
    <!-- Output: [1,2,3,4] -->

    <p>{{ [10, 5] | range }}</p>
    <!-- Output: [10,9,8,7,6] (start is bigger than end) -->
  `
})
export class RangeExampleComponent {}

Example 2: With Step Value

Generate arrays with a custom step value:

import {RangePipe} from 'ngx-lift';

@Component({
  imports: [RangePipe],
  template: `
    <p>{{ [1, 5, 2] | range }}</p>
    <!-- Output: [1,3] (step by 2) -->
  `
})
export class RangeStepExampleComponent {}

Example 3: Reverse Array

Generate arrays in reverse order:

import {RangePipe} from 'ngx-lift';

@Component({
  imports: [RangePipe],
  template: `
    <p>{{ [1, 5, 1, true] | range }}</p>
    <!-- Output: [4,3,2,1] (reverse the array) -->
  `
})
export class RangeReverseExampleComponent {}

Example 4: Dropdown Selection

Generate CPU count options for a dropdown. This is useful when displaying a list of computers with varying maximum CPU counts and allowing users to select a CPU range.

import {RangePipe} from 'ngx-lift';

@Component({
  imports: [RangePipe],
  template: `
    <div class="space-x-6">
      <label for="cpu-count">Choose CPU count</label>
      <select id="cpu-count">
        @for (count of [1, 5] | range; track $index) {
          <option [value]="count">{{ count }} CPU(s)</option>
        }
      </select>
    </div>
  `
})

API Reference

range

Angular pipe that generates an array of numbers within a specified range.

Signature

transform(value: [number]): number[]
transform(value: [number, number]): number[]
transform(value: [number, number, number]): number[]
transform(value: [number, number, number, boolean]): number[]

Parameters

  • value: [number] | [number, number] | [number, number, number] | [number, number, number, boolean]

    An array containing:

    • [number]: The end value (starts from 0)
    • [number, number]: The start and end values
    • [number, number, number]: The start, end, and step values
    • [number, number, number, boolean]: The start, end, step, and inclusive flag

Returns

An array of numbers within the specified range.