Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 为什么我不能使用$cordovaCalendar创建日历事件?_Angularjs_Cordova_Ionic Framework_Phonegap Plugins - Fatal编程技术网

Angularjs 为什么我不能使用$cordovaCalendar创建日历事件?

Angularjs 为什么我不能使用$cordovaCalendar创建日历事件?,angularjs,cordova,ionic-framework,phonegap-plugins,Angularjs,Cordova,Ionic Framework,Phonegap Plugins,我想在我的应用程序的设备日历中显示一个事件提醒,我正在尝试使用ngCordova和来实现这一点。根据ngCordova网站上的说明,我设置了ngCordova并安装了插件,但我遇到了以下问题: 错误指向ng cordova.js文件中的以下代码: $window.plugins.calendar.createEvent( defaultOptions.title, defaultOptions.location, defaultOp

我想在我的应用程序的设备日历中显示一个事件提醒,我正在尝试使用ngCordova和来实现这一点。根据ngCordova网站上的说明,我设置了ngCordova并安装了插件,但我遇到了以下问题:

错误指向
ng cordova.js
文件中的以下代码:

 $window.plugins.calendar.createEvent(
          defaultOptions.title,
          defaultOptions.location,
          defaultOptions.notes,
          new Date(defaultOptions.startDate),
          new Date(defaultOptions.endDate),
          function (message) {
            d.resolve(message);
          }, function (error) {
            d.reject(error);
          }
        );
我的控制器代码:

.controller('CalendarCtrl', function ($scope, $cordovaCalendar) {
  $cordovaCalendar.createEvent({
    title: 'Space Race',
    location: 'The Moon',
    notes: 'Bring sandwiches',
    startDate: new Date(2015, 0, 6, 18, 30, 0, 0, 0),
    endDate: new Date(2015, 1, 6, 12, 0, 0, 0, 0)
  }).then(function (result) {
    // success
  }, function (err) {
    // error
  });
})

在提供答案之前,我需要了解以下内容:

$ionicPlatform.ready(function() {
  $cordovaCalendar.createEvent({
    title: 'Space Race',
    location: 'The Moon',
    notes: 'Bring sandwiches',
    startDate: new Date(2015, 0, 6, 18, 30, 0, 0, 0),
    endDate: new Date(2015, 1, 6, 12, 0, 0, 0, 0)
  }).then(function (result) {
    // success
  }, function (err) {
   // error
  });
});
  • 您使用的是实际设备或模拟器(不是浏览器)
  • 您在HTML中包含了对cordova.js的引用
  • 插件实际上是添加的,证据显示在config.xml中

这些问题通常是由于插件未正确安装或未等待所有Cordova插件加载而导致的,我认为您可能正在处理第二个问题。添加
$ionicPlatform
作为依赖项,然后尝试以下操作:

$ionicPlatform.ready(function() {
  $cordovaCalendar.createEvent({
    title: 'Space Race',
    location: 'The Moon',
    notes: 'Bring sandwiches',
    startDate: new Date(2015, 0, 6, 18, 30, 0, 0, 0),
    endDate: new Date(2015, 1, 6, 12, 0, 0, 0, 0)
  }).then(function (result) {
    // success
  }, function (err) {
   // error
  });
});

$ionicPlatform.ready
确保在执行其作用域内的任何已定义函数之前加载所有插件,否则您尝试在加载插件之前调用它。

*我在实际设备上。*是,但不需要包括它,因为在构建时它会自动生成。*通过cmd添加的插件,显示在插件列表中,但不显示在config.xml上该插件不必出现在
config.xml
中,即使它已安装。验证插件是否已安装的更好方法是运行
cordova plugins
列出项目中所有已安装的插件。谢谢。我会试试它的工作很好。它可以在按钮点击和范围功能上工作。你也使用过这个插件吗?我对删除过程有异议。首先,它也不是按日期范围删除。比如我在一天中创建了3个事件,比如上午9点、下午1点和晚上8点。然后我只想最后一个事件,然后我使用开始日期和结束日期,就像这个要求一样,但它删除了同一天的所有事件。\n我没有使用这个插件,但是如果您有任何进一步的问题或疑问,不要犹豫,提交一个新问题,我相信我们可以帮助你。