【发布时间】:2018-10-28 00:00:54
【问题描述】:
每次加载网页时,我都必须单击徽标才能将数据完全填充到组件中的本地数组中。提取的数据位于本地 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 循环中,它无法识别 .length。
【问题讨论】:
-
你能告诉你具体的问题是什么以及它发生在哪里吗?
-
抱歉造成混淆,我已经上传了控制台图片,可能有助于澄清问题。
标签: javascript angular typescript interface