Because when changes are detected, onPush is executed when the input changes or when listening to the event that was listened to.
If you change this.testData , you must perform a discovery change to update the binding [value]="testData" . If this happens, change detection will be performed for <p-dataTable> because its input has changed.
There are no changes on the App tab, so no changes were found.
You can mark the App for validation with ChangeDetectorRef.markForCheck()
Plunger example
Günter Zöchbauer Feb 17 '17 at 8:58 2017-02-17 08:58
source share