> For the complete documentation index, see [llms.txt](https://swimlane.gitbook.io/ngx-datatable/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://swimlane.gitbook.io/ngx-datatable/readme/cd.md).

# Change Detection

The table implements `OnPush` change detection which means the dirty checking checks for immutable data types. That means if you do object mutations like:

```javascript
this.rows[i]['gender'] = 'Female';
```

The table will not detect a change! Instead if you do a change like this, you need to do:

```javascript
this.rows[i]['gender'] = 'Female';
this.rows = [...this.rows];
```

This will cause the table to detect the change and update. Some might have concerns that this is a pricey operation, however, it is MUCH cheaper than running `ngDoCheck` and constantly diffing the array.

For more information, I recommend this article [Angular Change Detection Explained](https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html).
