Я определяю сервис в AngularJS 1.2.x, как показано ниже, где я вставляю DreamFactory API для использования в этой службе. Теперь, когда я делаю это, я получаю сообщение об ошибке, какТребуется обязательное заполнение приложения AngularJS
TypeError: Cannot read property 'getRecords' of undefined
Я интерпретирую, что инъекция не полностью прекращена. Поэтому я пошел вперед и отложил вызов API 1000ms, который решает проблему. Но, конечно, эта задержка не является приемлемым решением. Как-то мне нужно событие для завершения инъекции, после чего я могу запустить метод DreamFactory.api.db.getRecord().
Может ли кто-нибудь помочь?
(function() {
'use strict';
angular
.module('app')
.service('VisitService', VisitService);
VisitService.$inject = ['$cookieStore', '$rootScope', '$timeout', 'DreamFactory'];
function VisitService($cookieStore, $rootScope, $timeout, DreamFactory) {
var service = {};
service.getVisits = getVisits;
function getVisits(callback) {
//setTimeout(function(){
DreamFactory.api.db.getRecords({table_name: 'visitors'})
.then(function(result) {
console.log(result.data.record);
callback(result.data.record)
},
function(reject) {
});
//}, 1000);
}
return service;
}
})();
в контроллере, я вызываю службу как так
VisitService.getVisits(function(result){
alert("this callback was triggered")
console.log(result)
});
Вам нужно проверить 'DreamFactory' - где-то вдоль линии нет объекта' db'; поэтому сообщение. \ – Darren
Эй, Даррен, я использую для объявления DreamFactory как ........... var loginApp = angular .module ('app', [ 'ngRoute', 'ngCookies', 'ngDreamFactory' ]) .constant ('DSP_URL', 'http: // localhost: 8080') .constant ('DSP_API_KEY', 'myApp') –
и, я прекрасно получаю свои данные, когда у меня есть небольшие 1000 мс добавлена задержка. –