I have an Input which is a javaScript object. when it changes the ngOnChange doesn't get triggered. I tried a number input, It worked correctly.
export class ResultsComponent implements OnInit, OnChanges {
@Input() SearchParams: {
HouseSelected : Boolean,
ApartementSelected : Boolean,
ShopSelected : Boolean,
KolangiSelected : Boolean,
BusinessSelected : Boolean,
NumOfRooms : String,
PriceLow: Number,
PriceHigh: Number,
//TODO add City
MeterLow:Number,
MeterHigh:Number
};
constructor() { }
ngOnInit() {
}
ngOnChanges(changes: SimpleChanges){
console.log(this.SearchParams);
}
}
Parent html
<form class="w3-container " >
<h4>price</h4>
<div>
<input name= "priceLow" [(ngModel)]="SearchParams.PriceLow" placeholder="low cost">
تا
<input name= "priceHigh" [(ngModel)]="SearchParams.PriceHigh" placeholder="High cost">
</div>
<h4>Meter</h4>
<div>
<input name= "MeterLow" [(ngModel)]="SearchParams.MeterLow" placeholder="smallest">
تا
<input name= "MeterHigh" [(ngModel)]="SearchParams.MeterHigh" placeholder="Highest">
</div>
<div >
<h4>type</h4>
<md-checkbox style="width:50%" name=" 1 " [(ngModel)]="SearchParams.HouseSelected">House</md-checkbox>
<md-checkbox style="width:50%" name=" 2 " [(ngModel)]="SearchParams.ApartementSelected">apartment</md-checkbox>
</div>
<h4>room Number/h4>
<md-radio-group name="numberOfRooms" [(ngModel)]="SearchParams.NumOfRooms">
<md-radio-button class="example-margin" value="1">1</md-radio-button>
<md-radio-button class="example-margin" value="2">2</md-radio-button>
<md-radio-button class="example-margin" value="3">3</md-radio-button>
<md-radio-button class="example-margin" value="4">3+</md-radio-button>
</form>
</div>
</div>
<div>
<app-results [SearchParams] = "this.SearchParams"></app-results>
</div>
the child that recives this inputs is app-results( as you can see in the HTML) There's nothing in app-results HTML