Я пытаюсь обеспечить, чтобы при загрузке frame
состояние, которое у моего $rootScope
имеет все необходимые свойства, определенные из предыдущих состояний., сделав угловое обслуживание для обещания корневой системы
Модуль ionic.utils
правильно введен в мое угловое приложение. Этот модуль поступает из моего файла services.js.
angular.module('ionic.utils', [])
.factory('dataService', ['$rootScope','$q','$timeout', function($rootScope, $q, $timeout) {
return {
get: function() {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve($rootScope);
}, 2000);
return deferred.promise;
}
}
}]);
Внутри моих controllers.js файл, это соответствующий контроллер для моего frame
состояния:
.controller('FrameCtrl', ['$scope','$state','$rootScope','dataService',
function($scope, $state, $rootScope, dataService) {
// get active address and delivery time.
dataService.get().success(function() {
console.log("derp");
});
}])
Однако этот контроллер возвращает следующее сообщение об ошибке консоли на переход состояния:
ionic.bundle.js:17696 TypeError: Cannot read property 'get' of undefined
at new <anonymous> (controllers.js:201)
at invoke (ionic.bundle.js:11591)
at Object.instantiate (ionic.bundle.js:11602)
at $get (ionic.bundle.js:14906)
at updateView (ionic.bundle.js:42986)
at IonicModule.directive.directive.compile.eventHook (ionic.bundle.js:42933)
at Scope.$get.Scope.$broadcast (ionic.bundle.js:20605)
at $state.transitionTo.$state.transition.resolved.then.$state.transition (ionic.bundle.js:34122)
at deferred.promise.then.wrappedCallback (ionic.bundle.js:19197)
at ionic.bundle.js:19283
У меня возникли проблемы с поиском ошибки в сервисе, который я написал. Некоторая помощь будет принята с благодарностью!
EDIT После добавления инъекций зависимостей в мой контроллер, теперь ошибка изменилась. Вот оно:
TypeError: object is not a function
at new <anonymous> (controllers.js:202)
at invoke (ionic.bundle.js:11591)
at Object.instantiate (ionic.bundle.js:11602)
at $get (ionic.bundle.js:14906)
at updateView (ionic.bundle.js:42986)
at IonicModule.directive.directive.compile.eventHook (ionic.bundle.js:42933)
at Scope.$get.Scope.$broadcast (ionic.bundle.js:20605)
at $state.transitionTo.$state.transition.resolved.then.$state.transition (ionic.bundle.js:34122)
at deferred.promise.then.wrappedCallback (ionic.bundle.js:19197)
at ionic.bundle.js:19283
'angular.module ('ionic.utils', []) .factory ('dataService', ['$ rootScope', '$ q', '$ timeout', function ($ rootScope, $ q, $ Тайм-аут) { возврата { прибудут: функция() { вар отложили = $ q.defer(); $ таймаута (функция() { возвращение deferred.resolve ($ rootScope); }, 2000); возврата отложить.обещаю; }} }]); ' контроллер должен быть' dataService.get(), а затем (функция (.) { console.log ("Derp"); }); ' –
Я не уверен, что вы опубликовали реализацию службы для ... Но мне удалось поймать этот '.then()' call. Казалось, это сработало. –
Должен ли я добавить его как answer.will вы его принимаете? –