Ionic-2:无法阅读该物业' open'未定义的

时间:2016-12-26 14:22:08

标签: javascript angular ionic2

我正在创建一个离子2项目,我在右下角有一个按钮。我的概念是,当我点击按钮时,时间选择器应该打开。我选择了我的时间并点击完成。

这就是我尝试的方式:

HTML:
   <ion-header>
    <ion-navbar color="primary">
        <ion-title>Alarms</ion-title>
    </ion-navbar>
</ion-header>

<ion-content>

    <ion-card *ngFor="let alarms of serAlarm">
        <ion-card-header>
            {{alarms.id}}
            <ion-toggle value="foo" checked="true"></ion-toggle>
        </ion-card-header>
        <ion-card-content>
            <ion-checkbox (click)="clickRepeat()"></ion-checkbox> Repeat
            <div class="hide">

            </div>
        </ion-card-content>
        <ion-card-content class="top0">
            {{alarms.hour}}:{{alarms.minute}}
        </ion-card-content>
    </ion-card>


    <ion-datetime #dateTime displayFormat="HH:mm" pickerFormat="HH:mm" [(ngModel)]="dateTimeModel" (ionChange)="onTimeChange()"></ion-datetime> 
    <ion-fab right bottom>
        <button ion-fab color="primary" (click)="opentime()">
            <ion-icon name="add"></ion-icon>
        </button>
    </ion-fab>

</ion-content>

TS:
import { Component, ViewChild } from '@angular/core';
import { NavController} from 'ionic-angular';


@Component({
    selector: 'page-alarm',
    templateUrl: 'alarm.html'
})
export class AlarmPage {
    time: string = '00:00';
    serAlarm = [];

    constructor(public navCtrl: NavController) { }

    @ViewChild('dateTime') sTime;

     opentime(){
         this.sTime.open();
     }

    onTimeChange() {
        var res = this.time.toString().split(":"); 
        this.serAlarm.push({
            id: "0",
            description: "",
            hour: res[0],
            minute: res[1],
            repeat: "0",
            action: "0",
            active: "1"
        });
    }
}

在这里,一切正常。但是,当我点击+按钮时,我收到错误Cannot read the property 'open' of undefined。我猜,问题出在<ion-datetime>行。但是,我无法弄清楚错误。有人可以帮我吗?我应该改变什么? enter image description here

1 个答案:

答案 0 :(得分:2)

为了选择你需要提供正确选择器的元素,如果你想要它是def new @topic = Forumtopic.friendly.find(params[:forumtopic_id]) end ,那么将元素改为:

dateTime

请注意,我已更改了<ion-datetime #dateTime displayFormat="HH:mm" pickerFormat="HH:mm" [(ngModel)]="dateTimeModel" (ionChange)="onTimeChange()"></ion-datetime> ,因为它们具有相同的名称引用。

现在您可以使用ngModel

来获取元素