首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic-2:无法读取未定义的属性“”open“”

Ionic-2:无法读取未定义的属性“”open“”
EN

Stack Overflow用户
提问于 2016-12-26 22:22:08
回答 1查看 838关注 0票数 0

我正在创建一个ionic-2项目,在右下角有一个按钮。我的概念是,当我单击按钮时,时间选择器应该打开。我必须选择我的时间,然后单击完成。

这是我尝试过的方法:

代码语言:javascript
复制
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>行中。但是,我不知道哪里出了问题。有人能帮我一下吗?我应该改变什么?

EN

回答 1

Stack Overflow用户

发布于 2016-12-26 23:21:18

为了选择元素,您需要提供正确的选择器,如果您希望它为dateTime,则将元素更改为:

代码语言:javascript
复制
<ion-datetime #dateTime displayFormat="HH:mm" pickerFormat="HH:mm" [(ngModel)]="dateTimeModel" (ionChange)="onTimeChange()"></ion-datetime>

请注意,我更改了ngModel,因为它们具有相同的名称引用。

现在,您可以使用@ViewChild('dateTime') sTime;获取元素

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41332581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档