2016-11-07 35 views
0

但是我试图使用幻灯片。然后获得对实例的访问权限,以便可以通过编程方式使用slideto功能。试图访问离子2幻灯片实例 - 返回undefined

我跟着文件,但我一直回来undefined。

下面是页面TS:

import { Component, ViewChild } from '@angular/core'; 

import { NavController, NavParams, Slides} from 'ionic-angular'; 

@Component({ 
    selector: 'holiday', 
    templateUrl: 'holiday.html' 
}) 
export class Holiday { 


    selectedItem: any; 

    @ViewChild('ghbslides') slider: Slides; 
    constructor(public navCtrl: NavController, public navParams: NavParams) { 

      console.log(this.slider); // returns undefined 
      this.selectedItem = navParams.get('holiday'); 

     } 

onSlideChanged(slide) { 
    console.log("slid"); 
} 



} 

而且下面是我的模板代码段,其中i定义幻灯片:

<ion-slides #ghbslides (ionDidChange)="onSlideChanged(index)"> 

     <ion-slide> 
     <h2>Slide 1</h2> 
     </ion-slide> 

     <ion-slide> 
     <h2>Slide 2</h2> 
     </ion-slide> 

     <ion-slide> 
     <h2>Slide 3</h2> 
     </ion-slide> 

    </ion-slides> 

我已经尝试了一些不同的东西,但每次this.slider未定义。

任何帮助将不胜感激,希望我失去了一些非常明显的东西。

回答

1

发生这种情况是因为在构造函数运行时未加载页面。 幻灯片将在加载视图后定义,以便您可以覆盖ionviewdidload以正确处理此问题。

ionViewDidLoad() { 
     console.log(this.slider); 
    } 
+0

嘿感谢我能得到的实例,但仍无法使用任何方法,如this.slider.slideTo(2,300)。有任何想法吗?并感谢您的帮助。 – jonnyhitek

+0

感谢@ misha130,无后顾之忧地解决了这个问题 – jonnyhitek