Ionic2 / Angular2:无法读取属性' push'未定义的

时间:2017-05-18 08:07:06

标签: angular

我有一个问题一直困扰着我过去24小时,我似乎无法理解,所以任何建议都会受到赞赏。我有一个班级:

@Component({
    selector: 'page-product-list',
    templateUrl: 'product-list.html'
})
export class ProductListPage {
    public detailPages: ProductDetailsPage[] = [];
    /* Also tried:
        public detailPages: ProductDetailsPage[] = new Array<ProductDetailsPage>();
        public detailPages: ProductDetailsPage[] = <ProductDetailsPage[]>[];
    */
    constructor( ... ) {
     /* Also tried it here:
        this.detailPages = [];
        and: 
        this.detailPages = new Array<ProductDetailsPage>();
        this.detailPages = <ProductDetailsPage[]>[];
    */
    }

    public register(page: ProductDetailsPage) {
        // This line gives an error: 
        // Cannot read property 'push' of undefined
        this.detailPages.push(page);
    }
}

我理解错误意味着数组尚未初始化,但为什么不呢?

我尝试在构造函数中初始化它,但它仍然给我同样的错误。很明显,我把事情搞得一团糟但是如果你不能在构造函数中初始化那么我可以在哪里呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

发现问题。我从* ngFor循环中调用了寄存器函数,因此可以从这个范围中解析出来。这对我来说并不是很清楚。

感谢任何帮助。

干杯,

- B