我正在AngularJS 1.2.x中定义一个服务,如下所示,我将注入DreamFactory API以用于此服务。现在,当我这样做时,我收到类似
的错误消息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)
});
答案 0 :(得分:1)
DreamFactory除了是基于承诺的API之外,还使用另一个必须要查找的条件。
我这样做:
$scope.$on('api:ready', function (e) { }
这位观察员在场解决了我的问题。 谢谢所有试图帮助的人