Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要AngularJS注入完整事件_Angularjs_Dependency Injection - Fatal编程技术网

需要AngularJS注入完整事件

需要AngularJS注入完整事件,angularjs,dependency-injection,Angularjs,Dependency Injection,我在AngularJS 1.2.x中定义了一个服务,如下所示,我在其中注入了DreamFactory API以用于此服务。现在,当我这样做时,我会得到如下错误消息 TypeError: Cannot read property 'getRecords' of undefined 我解释说注射并没有完全终止。因此,我继续并延迟了对API 1000ms的调用,这解决了问题。但当然,这一拖延不是一个可接受的解决办法。 不知何故,我需要一个用于注入完成的事件,然后在该事件上启动DreamFactory

我在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)
    });

除了作为基于承诺的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
是异步设置的,这就是为什么它是在超时后定义的。但是,如果您不在问题实际发生的地方发布代码,我们将无法提供帮助(请用代码编辑问题-不要在评论中发布…请只发布相关代码)