离子2 DatePicker

Mok*_*kaT 6 cordova ionic2

我是离子新手,我正在玩离子2 beta.我正在尝试使用cordova插件实现本机日期选择器,如文档中所示.

我完全复制/粘贴了这个例子,我"ReferenceError: DatePicker is not defined上了Nexus 5 Emulator和Archos安卓手机.

openDatePicker() {
    var options = {
      date: new Date(),
      mode: 'date'
    };

    function onSuccess(date) {
        alert('Selected date: ' + date);
    }

    function onError(error) { // Android only
        alert('Error: ' + error);
    }

    DatePicker.show(options, onSuccess, onError);
  }
Run Code Online (Sandbox Code Playgroud)

我已经搜索了很多但没有发现这个,也许我在Ionic 2上使用cordova插件做错了?

use*_*234 7

缺少相关文档(此问题时的Ionic Native文档仍然是一个WIP).

ionic-native 是一个独立于框架的模块,因此您需要安装它:

# from within your project directory
npm install --save ionic-native
Run Code Online (Sandbox Code Playgroud)

您还需要安装您尝试使用的插件,如果您还没有:

#from within your project directory
ionic plugin add cordova-plugin-datepicker
Run Code Online (Sandbox Code Playgroud)

然后DatePicker在代码中导入插件:

import {DatePicker} from 'ionic-native';
Run Code Online (Sandbox Code Playgroud)

然后和Ionic 1一样,在Cordova准备好之前你将无法使用任何插件.这意味着您可以使用Platform.ready或等待deviceready事件触发window:

constructor(platform: Platform) {
  platform.ready().then(() => {
    let options = {
      date: new Date(),
      mode: 'date'
    }

    DatePicker.show(options).then(
      date => {
        alert('Selected date: ' + date);
      },
      error => {
        alert('Error: ' + error);
      }
    );
  });
}
Run Code Online (Sandbox Code Playgroud)

还有一点需要注意的是,ionic-native将回调包装在一个承诺中.

  • 最后一个版本很糟糕,现在尝试更新:`npm install ionic-native` (2认同)