如何访问控制器内AngularJS数据服务返回的对象的子对象

时间:2016-04-12 11:25:06

标签: javascript angularjs angularjs-scope javascript-objects

我有一个angularjs数据工厂,它进行服务器调用并在工厂返回的对象中设置返回的数据,如下所示

 angular.module('app').factory('DataService', function() {
        // Returning object
        return {
            data: {},
            isLoaded: false,
            getData:getdata

        };
        function getData() {
            var self  = this;
           //Some Ajax Call returns an 'dataObject'
           self.data = dataObject; //dataObject has a few subObjects and list
        }
 });

现在在我的angularjs控制器中,我调用DataService.getData()进行ajax调用,从而在factoryobject' data'

中设置返回的dataObject

我在控制器中声明了这个

appV.data = DataService.data;

如果我尝试在控制台上打印它或像这样访问 console.log(appVm.data),我能够访问它,但如果我尝试访问任何子对象,如Ex - appVm.data.property1或appVm.data.subObject1.subObject1.property,它会给出undefined。

有人可以解释为什么会出现这种情况吗?

先谢谢

1 个答案:

答案 0 :(得分:0)

这只是一个例子:

app.factory("messageService", function($q){
    return {
        getMessage: function(){
            return $q.when("Hello World!");
        }
    };
});

现在是解决方案中将使用该服务的路由配置。

$routeProvider
    .when("/news", {
        templateUrl: "newsView.html",
        controller: "newsController",
        resolve: {
            message: function(messageService){
                return messageService.getMessage();
        }
    }
})

这些链接可以帮助您:

Link 1Link 2