Ionic - ошибка: [$ инжектор:unpr] неизвестный поставщик: ionic.cloudProvider <- ionic.cloud
Проблема: я использую Ionic 1, пытаясь настроить push-уведомления с помощью Ionic Cloud. Я получаю следующую ошибку:
**Error: [$injector:unpr] Unknown provider: ionic.cloudProvider <- ionic.cloud <- welcomeCtrl**
ionic.bundle.js:26794 Error: [$injector:unpr] Unknown provider: ionic.cloudProvider <- ionic.cloud <- welcomeCtrl
http://errors.angularjs.org/1.5.3/$injector/unpr?p0=ionic.cloudProvider%20%3C-%20ionic.cloud%20%3C-%20welcomeCtrl
at ionic.bundle.js:13438
at ionic.bundle.js:17788
at Object.getService [as get] (ionic.bundle.js:17941)
at ionic.bundle.js:17793
at getService (ionic.bundle.js:17941)
at injectionArgs (ionic.bundle.js:17965)
at Object.instantiate (ionic.bundle.js:18007)
at $controller (ionic.bundle.js:23412)
at Object.self.appendViewElement (ionic.bundle.js:59900)
at Object.render (ionic.bundle.js:57893)(anonymous function) @ ionic.bundle.js:26794
Мой app.js:
angular.module('app', [
'ionic',
'ionic.cloud',
...
Я впрыскиваю ionic.cloud.
.config(function($ionicConfigProvider, $ionicCloudProvider) {
// Set tabs always to load on top
$ionicConfigProvider.tabs.position('top');
$ionicCloudProvider.init({
"core": {
"app_id": "(my app id was here)"
},
"push": {
"sender_id": "(FCM sender id was here)",
"pluginConfig": {
"ios": {
"badge": true,
"sound": true
},
"android": {
"iconColor": "#343434"
}
}
}
});
});
У меня правильно настроен конфиг.
Тогда в моем index.html у меня есть:
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- ionic cloud -->
<script src="lib/ionic.cloud.min.js"></script>
И, наконец, в моем контроллере у меня есть:
angular.module('app.controllers')
.controller('welcomeCtrl', ['$scope', '$stateParams', 'UserService', '$cordovaDevice', '$cordovaCapture','$cordovaFileTransfer', '$cordovaGeolocation', '$location', '$timeout','$state', '$ionicHistory', 'ionic.cloud',
function ($scope, $stateParams, UserService, $cordovaDevice, $cordovaCapture, $cordovaFileTransfer, $cordovaGeolocation, $location,$timeout,$state, $ionicHistory, $ionicPush) {
Вы увидите, что я впрыскиваюionic.cloud'
а также $ionicPush
Я проверил в отладке устройства Chrome, что ресурсы там. Я следовал за документами Ionic cloud к T, но продолжаю получать эту ошибку.
У кого-нибудь есть идеи?
Спасибо!
1 ответ
Решение
Проблема в том, что в вашем контроллере вам не нужно вводить ionic.cloud, это должно быть
angular.module('app.controllers')
.controller('welcomeCtrl', ['$scope', '$stateParams', 'UserService', '$cordovaDevice', '$cordovaCapture','$cordovaFileTransfer',
'$cordovaGeolocation', '$location', '$timeout','$state', '$ionicHistory', '$ionicPush',
function ($scope, $stateParams, UserService, $cordovaDevice, $cordovaCapture, $cordovaFileTransfer, $cordovaGeolocation,
$location,$timeout,$state, $ionicHistory, $ionicPush) {
}
И если ваш контроллер из другого модуля, в него должен быть введен ionic.cloud
angular.module('app.controllers',['ionic',
'ionic.cloud'])