2016-05-06 3 views
0

Ionic 2を使用していて、日付と時刻フィールドを持つフォームを実装しようとしています。コールバック関数データをIonic 2のボタンにバインドします。

私はionic-native DatePickerを使用して、ユーザーが選択できるカレンダーを実装しています。

私のjsファイルのようなある:

import {DatePicker} from 'ionic-native'; 
constructor() { 
    this.startD = "starting"; 
} 
datePickerFrom(){ 
    let options = { 
     date: new Date(), 
     mode: 'date' 
    } 

    function onSuccess(date){ 
     console.log("Selected date: " = date) 
     this.startD = date; 
    } 

    function onError(error){ 
     console.log(error); 
    } 

    DatePicker.show(options, onSuccess, onError); 
    } 

HTML:

<div> 
     <button (click)="datePickerFrom()">S: {{startD}}</button> 
     <button (click)="timePickerFrom()">T: {{startT}}</button> 
    </div> 

This is how it looks when i start up the app

これは私がアプリを起動したときに、それがどのように見えるかです。

しかし、私はdatePickerFrom()を実行するために、ボタンをクリックしたときに、私が選択した日付Selected date: Sat May 07 2016 00:00:00 GMT+0800 (SGT)を取得しますが、ボタン上のプレースホルダ値として表示するように選択した日付(this.startD)に結合しようとすると構文エラーを得ることができます。

Error in Success callbackId: DatePickerPlugin1074986803 : TypeError: Cannot set property 'startD' of undefined.
Uncaught TypeError: Cannot set property 'startD' of undefined

Ionic 2を回避する方法があるかどうか分かりますか? thisは、コンポーネントのインスタンスに対応していない、

datePickerFrom() { 
    let options = { 
    date: new Date(), 
    mode: 'date' 
    } 

    DatePicker.show(options, (date) => { 
    console.log("Selected date: " = date) 
    this.startD = date; 
    }, (error) => { 
    console.log(error); 
    }); 
} 

そうでない場合には(脂肪の機能を持つ):

答えて

1

私は文脈にこれを使用できるように矢印関数を使用します。

+0

こんにちは!ご回答有難うございます!今私が持っているものは:私は日付を選択してOKを押すことができます。私のconsole.logは選択された日付を表示しますが、ボタンのプレースホルダーの値はすぐには変わりません。 'this.startD'は別のボタンや他の入力フィールドをクリックした後にのみ実行され、プレースホルダの値が変更されます。 – Huiting

関連する問題