如何将 json 数据获取到共享服务并在两个独立的控制器之间使用它
How to fetch json data to shared service and use it between two isolated controllers
我正在尝试从服务器获取数据并将它们分配给 sharedScope 工厂中的数组。接下来,我想简单地将工厂注入到我的两个独立控制器中,并使用它们之间的双向数据绑定来对同一个数组进行操作。
我想要实现的类似方法在这里有很好的描述:
数据字段已经分配,一切正常。当我想先从服务器获取数据时,问题就开始了。我应该怎么做才能使数据立即在控制器中可用?
由于 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
我正在尝试从服务器获取数据并将它们分配给 sharedScope 工厂中的数组。接下来,我想简单地将工厂注入到我的两个独立控制器中,并使用它们之间的双向数据绑定来对同一个数组进行操作。
我想要实现的类似方法在这里有很好的描述:
数据字段已经分配,一切正常。当我想先从服务器获取数据时,问题就开始了。我应该怎么做才能使数据立即在控制器中可用?
由于 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