您好,我开始使用angular 2进行操作,但是遇到了问题,在玩了一点之后,我发现我什至无法警告阵列的长度。我遗漏了一些明显的东西,但是它可以在边缘工作(总是打印出值),但是不能在chrome上工作,我收到此错误[无法设置[object Object]仅具有吸气剂的属性堆栈]

这是我的代码段:

export class GridComponent implements OnInit{
coils : ICoil[];
constructor(private _loadCoil : LoadCoil){

}

ngOnInit() : void{
    this._loadCoil.getAllCoils().subscribe(coils => this.coils = coils );
    alert(this.coils.length);
}}


因此,正如我所告诉的那样,当我在边缘测试时,它总是会警告长度值,但是不会在chrome中警告。
感谢帮助

最佳答案

您的代码可能给出了错误,这就是为什么看不到未定义长度的原因。因为您没有初始化数组。

可以像这样初始化它:coils : ICoil[] = [];

要么

ngOnInit() : void{
    this._loadCoil.getAllCoils().subscribe(coils => this.coils = coils );
    alert(this.coils.length);
}}


应该

ngOnInit() : void{
    this._loadCoil.getAllCoils().subscribe((coils) => {
         this.coils = coils;
         alert(this.coils.length);
     });

}}


getAllCoils是一个异步函数。

这意味着其回调(订阅)将需要一些时间来执行。因此,直到那时,您的this.coils都是不确定的。

09-18 07:42