Каждый раз, когда я загружаю веб-страницу, мне приходится нажимать на логотип, чтобы мои данные полностью заполняли локальный массив в моем компоненте.Полученные данные находятся в локальном файле JSON.Необходимость обновлять страницу каждый раз довольно непрофессионально / раздражает.
Использование Angular CLI 1.3.2
Вот в чем моя проблема:
@Injectable()
export class LinksService implements OnInit{
siteFile : IFile[];
constructor(private http: Http) {
this.getJSON().subscribe(data => this.siteFile = data, error =>
console.log(error));
}
public getJSON(): Observable<any> {
return this.http.get('./assets/docs/links.json')
.map((res:any) => res.json());
}
getAllIpageLinks() : IPageLink[]{
var selectedIPageLinks: IPageLink[] = new Array();
var selectedFileLinks : IFile[] = new Array();
selectedFileLinks = this.siteFile;
for (var i=0; i<selectedFileLinks.length; i++)
{
selectedIPageLinks =
selectedIPageLinks.concat(selectedFileLinks[i].files);
}
return selectedIPageLinks.sort(this.sortLinks);
}
Компонент:
constructor(private elRef: ElementRef, private linksService: LinksService) {
this._file = this.linksService.getAllIpageLinks();
}
Редактировать Чтобы полностью отобразить массив IFile [], нужно щелкнуть заголовок.Я пытался установить IFile для пустого массива (IFile [] = []) Ошибка исчезает, однако, она будет отображать пустые данные.
Кажется, проблема в цикле For, он может 'т. длина.