Angular - 链接控制器和服务的问题

时间:2017-03-07 16:51:51

标签: angularjs

我是Angular.js的新手并且使用angularjs-template种子项目。我在连接控制器和服务时遇到问题。代码运行正常,但我似乎没有将任何数据返回到控制器。

我已经谷歌搜索了一下,并在这个论坛上阅读了simimar的帖子,但在尝试了各种不同的方法后,我仍然无法使其工作。

listController.js

(function () {
    'use strict';

    angular.module('app.node.list', ['app.nodeService'])
            .controller('NodeListController', NodeListController);

    NodeListController.$inject = ['$log', 'nodeService'];

    function NodeListController($log, nodeService) {
        var vm = this;

        vm.node = [];

        //vm.node = [{name: 'michael'}, {name: 'carol'}]

        retrieve();

        //  ***************************************************************************
            $log.info('About to print contents of vm.node');
            $log.info(vm.node);
        // ***************************************************************************

        function retrieve() {
            return getJson().then(function () {
                $log.info('Retrieved Json');
            });
        }

        function getJson() {
            return nodeService.getAPIData().then(function (data) {
                vm.node = data;
                //  ***************************************************************************
                    $log.info('About to print contents of data and vm.node in getJSON');
                    $log.info(data);
                     $log.info(vm.node);
                // ***************************************************************************
                return vm.node;
            });
        }
    }
})();

nodeService.js

(function () {
    'use strict';

    angular.module('app.nodeService', [])
        .factory('nodeService', nodeService);

    nodeService.$inject = ['$http', '$log', '$q'];

    function nodeService($http, $log, $q) {

        return {
            getAPIData: getAPIData
        };

        function getAPIData(){
            //  ***************************************************************************
            $log.info('getAPIData Started');
            //  ***************************************************************************
            return $http.get("https://n4nite-api-n4nite.c9users.io/v1/imm/summary")
                .then(getAPIDataComplete)
                .catch(getAPIDataFailed)

            function getAPIDataComplete(response){
                //  ***************************************************************************
                    $log.info('getAPIDataComplete Started');
                    $log.info('Printing contents of getAPIDataComplete response.data');
                    $log.info(response.data);
                // ***************************************************************************
                return response.data;
            }

            function getAPIDataFailed(error){
                $log.info('getAPIFailed Started');
                var newMessage = 'XHR Failed for getData.';
                $log.error(newMessage);
                return $q.reject(error);
            }
        }

    }
})();

控制台: enter image description here 感谢

0 个答案:

没有答案