You need to use 2 way data-binding.
@Input()
is one way data-binding.
to enable 2 way data-binding you need to add an @Output()
corresponding to the property, with a “Change” suffix
@Input() getSearchStatus: boolean;
@Output() getSearchStatusChange = new EventEmitter<boolean>();
when you want to publish the change made to your property to the parent, you need to notify the parent with:
this.getSearchStatusChange.emit(newValue)
and in the parent you need to use the banana-in-a-box notation for that property:
[(getSearchStatus)]="myBoundProperty"
you can also bind to the property and trigger a callback when it changes in child:
[getSearchStatus]="myBoundProperty" (getSearchStatusChange)="myCrazyCallback($event)"
see the plnkr