Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk3 min

Why I Open-Sourced My Reusable Angular Data Table

Carlos Morcillo Fernández open-sourced ng-hub-ui-paginable to stop rebuilding the same Angular data table and rediscovering paging bugs. Here is how its data modes work and what it still lacks.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Carlos Morcillo Fernández open-sourced ng-hub-ui-paginable after repeatedly rebuilding the same Angular screen: an API-backed list with pagination, sorting, filters, search, and row selection. His point is less that the work was difficult than that copying it between projects kept bringing back maintenance—and paging bugs. The component is his attempt to preserve that accumulated work in one reusable place.

Why rebuild the same table again and again?

Morcillo describes a familiar cycle: implement a data table for one project, copy it into the next, strip out project-specific pieces, and eventually rediscover bugs in pagination. The repeated work was the motivation for publishing the component, not a claim that Angular tables are unusually difficult.

As an Amazon Associate I earn from qualifying purchases.

As he put it, “That is the part that wore me down. Not the difficulty — none of this is hard — but the repetition, and the fact that the knowledge kept evaporating.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How does the component distinguish client-side and server-side data?

In the author’s description, the distinction comes from the inputs rather than a separate serverSide switch:

Input pattern What the component does
A plain array Performs pagination, sorting, filtering, and search in memory.
Page data supplied with a total item count Renders the supplied page instead of manipulating the full dataset, and exposes changes such as page, page size, sorting, and search through bindings.

The article uses a list of forty thousand records as an example of why server pagination may be used; that is an illustrative scenario, not a benchmark or a general performance threshold. In server mode, the application is responsible for supplying the page data while the component communicates the requested table state.

How does the table share state with an Angular application?

The component uses Angular two-way model() bindings for values including page, page size, sort order, search term, filters, loading, and error. The design goal is to keep the application and table working with shared state instead of maintaining separate values that must be synchronized.

A resource can also be supplied through a structural interface exposing value(), isLoading(), and error(). As Morcillo describes it, a paging change updates a resource parameter and Angular’s resource machinery loads again; the table itself does not call reload().

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What does the author report about installation and compatibility?

Morcillo’s article describes the package as MIT licensed, compatible with Angular 18 and later, and installable with:

npm i ng-hub-ui-paginable

Those are the author’s reported package details, not independently verified current metadata. Check the package’s current documentation and release information before adopting it, particularly if your application uses a specific Angular version or depends on a particular license or feature set.

What is missing, and where should teams be cautious?

The author identifies several absent features and implementation trade-offs:

  • No virtual scrolling, export, column reordering, or row grouping.
  • Rows track by index, so a refetched page rerenders instead of being diffed by record ID.
  • The component is not intended for tens of thousands of rows in one scroll container.

He also reports accessibility changes in version 22.25.0, including column scope, a loading state, a live row-count region, and an indication of the current page. He acknowledges remaining issues: range filters are unlabeled, and paginator ellipses can receive focus when they should not. These are the author’s implementation notes, not results of an independent accessibility audit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When might another Angular table approach fit better?

The author frames Angular Material’s table as a set of primitives that developers assemble with a paginator and sort header; its design language may fit applications already built around Material. That approach can be appropriate when the team wants to compose and maintain its own table behavior.

He contrasts that with commercial full-featured grids, which may cover more use cases but can involve per-developer costs that are difficult to justify for a small internal tool. That is a trade-off he describes, not a universal price or value judgment. Before choosing, weigh:

  • Design-system fit: whether the component matches the UI your application already uses.
  • Assembly and maintenance: how much behavior your team wants to build and keep aligned.
  • License and budget: whether the terms and any per-developer costs work for your use case.
  • Feature breadth: whether you need capabilities such as export, grouping, or column reordering.
  • Data presentation: whether the workload requires virtual scrolling or a very large scrollable dataset.
  • Accessibility: whether the documented behavior meets your needs and has been checked in your own application.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.