Skip to main content

getting-started

Create an Angular TanStack Table v9 table with injectTable inside injection context, explicit stable tableFeatures and columns, signal-backed data, and FlexRender structural directives or helpers.

Zur Installation springen

Quellinformationen

Repository
TanStack/table
Letzte Quellaktivität
28. August 2026 um 17:37
Erkannte Sprache von SKILL.md
Englisch
Sterne
28.432
Forks
3.577

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
getting-started
description
Create an Angular TanStack Table v9 table with injectTable inside injection context, explicit stable tableFeatures and columns, signal-backed data, and FlexRender structural directives or helpers.
metadata
{"type":"framework","library":"@tanstack/angular-table","framework":"angular","library_version":"9.2.4"}
requires
["@tanstack/table-core#core","@tanstack/table-core#table-features"]
sources
["TanStack/table:docs/framework/angular/guide/migrating.md","TanStack/table:docs/framework/angular/guide/rendering.md","TanStack/table:examples/angular/basic-inject-table","TanStack/table:packages/angular-table/src/index.ts"]
This skill builds on `@tanstack/table-core#core` and `@tanstack/table-core#table-features`. Read them first for the headless model and explicit features. ## Setup ```ts import { Component, signal } from '@angular/core' import { FlexRender, injectTable, tableFeatures } from '@tanstack/angular-table' type Person = { name: string; age: number } const features = tableFeatures({}) const columns = [ { accessorKey: 'name', header: 'Name' }, { accessorKey: 'age', header: 'Age' }, ] @Component({ selector: 'app-table', imports: [FlexRender], template: `<table> <tbody> @for (row of table.getRowModel().rows; track row.id) { <tr> @for (cell of row.getAllCells(); track cell.id) { <td> <ng-container *flexRenderCell="cell; let value">{{ value }}</ng-container> </td> } </tr> } </tbody> </table>`, }) export class TableComponent { readonly data = signal<Person[]>([{ name: 'Ada', age: 36 }]) readonly table = injectTable(() => ({ features, columns, data: this.data() })) } ``` ## Core Patterns ### Keep static inputs outside the initializer `injectTable` reruns its options initializer when a signal read changes. Define features, row-model factories, and columns at module or stable class scope; read only changing values inside. ### Render each content kind correctly Import `FlexRender` for `*flexRender`, `*flexRenderCell`, `*flexRenderHeader`, and `*flexRenderFooter`. Definitions may yield primitives, `TemplateRef`, component types, or `flexRenderComponent(...)`; Table does not supply markup or CSS. ## Common Mistakes ### CRITICAL Calling injectTable outside DI Wrong: ```ts export function makeTable() { return injectTable(() => ({ features, columns, data })) } ``` Correct: ```ts export class TableComponent { readonly table = injectTable(() => ({ features, columns, data: this.data() })) } ``` `injectTable` asserts an Angular injection context and registers lifecycle cleanup there. Source: `packages/angular-table/src/injectTable.ts` ### HIGH Reallocating static options reactively Wrong: ```ts injectTable(() => ({ features: tableFeatures({}), columns: makeColumns(), data: this.data(), })) ``` Correct: ```ts const features = tableFeatures({}) const columns = makeColumns() injectTable(() => ({ features, columns, data: this.data() })) ``` Every signal change reruns the initializer; rebuilding static inputs invalidates memoized Table work. Source: `packages/angular-table/src/injectTable.ts` ### HIGH Treating a render function as a component Wrong: ```ts cell: () => flexRenderComponent(() => 'value') ``` Correct: ```ts cell: () => 'value' ``` `flexRenderComponent` wraps an Angular component type; ordinary functions and primitives are handled directly by FlexRender. Source: `docs/framework/angular/guide/rendering.md` ## API Discovery Inspect `node_modules/@tanstack/angular-table/dist/types/` for the bundled public API; inspect optional feature APIs in installed `@tanstack/table-core/dist/features/`.
Auf GitHub ansehen