В моем приложении Angular2 при входе пользовательского интерфейса загружается компонент, который извлекает данные из веб-службы. Я хочу перезагрузить aptSearchComponent, когда пользователь вводит изменения. Хотя новые данные извлекаются из базы данных на входе, компонент не перезагружается.Угловая 2 перезагрузка текущего компонента на основе пользовательского ввода
Входной сигнал находится в headerComponent, когда пользователь вводит некоторые критерии поиска и попадает, данные передаются в sharedService и направляются в aptSearchComponent, где данные извлекаются из общей службы, и результаты отображаются.
Шаблон headerComponent находится наверху, а под ним отображается шаблон aptSearchcomponent.
@Component({
selector: 'app-header',
template: `
<div class="mdl-textfield__expandable-holder">
<input class="mdl-textfield__input" type="text" id="search" (keyup.enter)="Search($event)">
</div>
`,
})
export class HeaderComponent {
public apartments: Object[];
constructor(private apartmentService: ApartmentService,private router: Router,private sharedService: SharedService) {
this.apartmentService=apartmentService;
this.sharedService=sharedService;
}
Search(event){
this.apartmentService.searchApt2(event.target.value).subscribe(res => {this.sharedService.temp = res
this.router.navigate(['AptSearch'])});
}
}
Как я могу перезагрузить компонент в угловыми 2. В основном данные в this.aptDetails изменяется, но шаблон по-прежнему показывает старые данные.
export class AptSearchComponent implements OnInit {
aptDetails: any;
constructor(private apartmentService: ApartmentService, private sharedService: SharedService,private zone:NgZone) {
this.apartmentService = apartmentService;
}
ngOnInit(){
this.aptDetails = this.sharedService.temp;
JSON.stringify(console.log(this.aptDetails)); //the data here is changed based on input, but the template is not refreshed and I still see the previous result.
}
}
Я попытался следующая в конструкторе(), но не повезло
this.zone.run(()=>this.aptDetails=this.sharedService.temp);
Я использую RC4 и polyfills в не импортируются.
Вы действительно хотите перезагрузить компонент? или вы просто хотите перезагрузить 'aptDetails' –
Aptdetails, он перезагружается в консоли в текущем коде. вид не изменяется. – user2180794
Где вход? пожалуйста, добавьте дополнительную информацию –