如何将json数据提取到共享服务并在两个隔离的控制器之间使用它

时间:2015-08-05 21:01:15

标签: json angularjs angularjs-controller

我正在尝试从服务器获取数据并将它们分配给sharedScope工厂中的数组。接下来我想简单地将工厂注入我的两个独立控制器,并使用它们之间的双向数据绑定来操作同一个数组。

我想要实现的类似方法在这里有很好的描述: https://stackoverflow.com/a/24913983/5195524

已经分配了数据字段,一切正常。当我想首先从服务器获取数据时,问题就开始了。如何在控制器中立即提供数据?

1 个答案:

答案 0 :(得分:1)

由于javascript变量范围,您的版本无效。您无需访问原型链,而是在成功函数中创建新变量。最简单的解决方法是:

app.factory("sharedScope", function($http) {
            var self = this;
            self.data = {};

            init();

            function init() {
                    $http.get('http://jsonplaceholder.typicode.com/posts').
                    success(function(response) {
                            self.data.text = response;
                    });
            }

            return self;
    });

这是plnkr http://plnkr.co/edit/6gA7nt4cYwOWJGAuoLe5?p=preview

的工作原理