Javascript ngCordova触点在角度控制器内不可用?

Javascript ngCordova触点在角度控制器内不可用?,javascript,angularjs,cordova,ngcordova,Javascript,Angularjs,Cordova,Ngcordova,我不明白为什么不能在控制器内调用$ionicPlatform。我可以在angularrun()方法中毫无问题地运行 angular.module('starter', ['ionic', 'ngCordova', 'app.controllers', 'app.services']) .run(function($ionicPlatform, $http, $cordovaContacts, debugService) { $ionicPlatform.ready(function() {

我不明白为什么不能在控制器内调用
$ionicPlatform
。我可以在angular
run()
方法中毫无问题地运行

angular.module('starter', ['ionic', 'ngCordova', 'app.controllers', 'app.services'])

.run(function($ionicPlatform, $http, $cordovaContacts, debugService) {
  $ionicPlatform.ready(function() {
    window.stupid = $cordovaContacts;
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });
})
当我试图在控制器内部调用它时,它是空的

.controller('ContactsCtrl', function($scope, $ionicPlatform, $cordovaContacts, $http, debugService) {
  window.stupid = $cordovaContacts;
  //debugService.log(ionic);
  // $cordovaContacts.find({filter: '',multiple: true,fields: ['displayName', 'name']}).then(function(allContacts){
  //     alert('cordova contacts found');
  //     debugService.log(allContacts);
  //     // This has issues
  //     $scope.contacts = contactsService.get(allContacts);
  // });

});

我只想抓取控制器内的联系人,而不是每次应用程序运行时。有什么建议吗?

控制器
窗口中的代码。dumby=$cordovaContactscordova
尚未就绪时,code>将被初始化

与此相关,您必须使用deviceready事件包装插件调用:

document.addEventListener("deviceready", function () {
  window.stupid = $cordovaContacts;
}, false);

// OR with IONIC

$ionicPlatform.ready(function() {
  window.stupid = $cordovaContacts;
});

因此,您必须编写与您在run块中已经编写的代码几乎相同的代码

是的,但我是说
$ionicPlatform
在控制器中不可用您是否注入了
ionic
依赖项?您还可以尝试全局
ionic
对象:
ionic.Platform.ready(function(){})是的,我之前检查了离子变量,它似乎是可用的。我检查得不够仔细,看不到里面的平台。让我试试:)在上面的控制器代码中,我看不到任何
ionicPlatform。准备好了吗?!我的移动应用程序具有完全相同的结构,并且可以正常工作。现在我也很困惑;-)我删除了它,因为我正在玩其他版本的代码,我只是碰巧分享了我的当前状态,很抱歉造成混乱。似乎
ionic.Platform.ready(function(){})没有帮助。我也很困惑。