我正在构建一个应用程序,汇总Facebook GRAPH live提供的数据。具体来说,我想从各种Facebook页面中读取喜欢的数量并显示喜欢的总数。此信息每5秒更新一次。我已设法从各个页面提取并更新信息,但无法弄清楚如何将这些值一起添加并显示总数。这是标记:
<div ng-controller="TotalController">
<span ng-controller="UpdateController" ng-init="init('331288023558058','fan_count')">{{output}}</span>
<span ng-controller="UpdateController" ng-init="init('20531316728','fan_count')">{{output}}</span>
<span>{{outputTotal}}</span>
</div>
以下是它的脚本:
var app = angular.module('app', []);
app.controller('UpdateController', function($scope, $http) {
$scope.init = function(id, item) {
$scope.id = id;
$scope.item = item;
//retrieve data on the initial load
$scope.updateData();
};
$scope.updateData = function() {
$http({
method: 'JSONP',
url: 'https://graph.facebook.com/fql?q=select ' + $scope.item + ' from page where page_id = ' + $scope.id + '&callback=JSON_CALLBACK'
}).success(function(data) {
//load the new value
var currentValue = data['data'][0][$scope.item];
//output new value to view
$scope.output = currentValue;
}).error(function(data, status) {
console.log("error " + data + " " + status);
});
};
var timer = setInterval(function() {
$scope.$apply($scope.updateData);
}, 5000);
});
我已经尝试设置一个控制器,它包含两个Update控制器并观察更改的范围,但我无法从两个子控制器中获取数据。
我的理解是,最好的方法是设置聚合值的服务,然后将此服务注入第三个“Total”控制器,但我无法实现这一点。 。解决这个问题的最佳方法是什么?我对控制器的处理完全错了吗?