需要AngularJS注入完整事件
我在AngularJS 1.2.x中定义了一个服务,如下所示,我在其中注入了DreamFactory API以用于此服务。现在,当我这样做时,我会得到如下错误消息需要AngularJS注入完整事件,angularjs,dependency-injection,Angularjs,Dependency Injection,我在AngularJS 1.2.x中定义了一个服务,如下所示,我在其中注入了DreamFactory API以用于此服务。现在,当我这样做时,我会得到如下错误消息 TypeError: Cannot read property 'getRecords' of undefined 我解释说注射并没有完全终止。因此,我继续并延迟了对API 1000ms的调用,这解决了问题。但当然,这一拖延不是一个可接受的解决办法。 不知何故,我需要一个用于注入完成的事件,然后在该事件上启动DreamFactory
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)
});
除了作为基于承诺的API之外,DreamFactory还使用了另一个必须寻找的条件 我是这样做的:
$scope.$on('api:ready', function (e) { }
这个旁观者的出现解决了我的问题。
感谢所有试图帮助您的人您需要检查
DreamFactory
——在这条线路的某个地方没有db
对象;这就是消息。\Hey Darren,我用来声明DreamFactory,比如。。。。。。。。。。。var loginApp=angular.module('app',['ngRoute','ngCookies','ngDreamFactory')).constant('DSP_URL',')).constant('DSP_API_KEY','myApp'),并且,当我添加了1000毫秒的小延迟时,或者如果我用一个按钮触发getVisit(),我很好地获得了数据。它工作得很好,不需要特别延迟。因此,这让我认为DreamFactory还没有被完全注入,而我想在它上面添加getRecords()方法。然后它说它不能读取未定义的getRecords()属性否-没有“注入完成”这样的事情。。。告诉我们在DreamFactory
中发生了什么-显然db
是异步设置的,这就是为什么它是在超时后定义的。但是,如果您不在问题实际发生的地方发布代码,我们将无法提供帮助(请用代码编辑问题-不要在评论中发布…请只发布相关代码)