0

I have a function like below, which is invoked from within ngAfterViewInit(). I have a ngFor in the view using the countryUsageTypesArr variable. Now I have tried to put that part of the code inside ngZone.run(), setTimeout(), tried to use spread operator (to create a new array), but nothing makes angular to catch the change. The only option is using ChangeDetectionRef (which works well, I have tested). But I am not feeling well to use ChangeDetector every where. Is there any other way I should try?

getCategoryById(categoryId: number) {
    this.categoryService.getCategoryById(categoryId).subscribe((response: any) => {
        if (response.result == 1) {
            window.setTimeout(() => {
                this.countryUsageTypesArr = [...response.data.country_usage_types, []];
            }, 0);
        }
    }, (error: any) => {
        // console.log(error.error.msg);
    });
}
Rakesh Mehta
  • 519
  • 2
  • 9

0 Answers0