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>
これは私がアプリを起動したときに、それがどのように見えるかです。
しかし、私は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);
});
}
そうでない場合には(脂肪の機能を持つ):
こんにちは!ご回答有難うございます!今私が持っているものは:私は日付を選択してOKを押すことができます。私のconsole.logは選択された日付を表示しますが、ボタンのプレースホルダーの値はすぐには変わりません。 'this.startD'は別のボタンや他の入力フィールドをクリックした後にのみ実行され、プレースホルダの値が変更されます。 – Huiting