İstatistik denetleyicim ile eşzamanlı olmayan bir sorunla karşılaşıyorum. Ben db sorgular ve nesneleri döndüren bir denetleyici var. Bu denetleyicide, platform Facebook'u kullanarak filtreyi kullanıyorum ve bunu $rootScope.facebookObjects
'a koydum.Köşeli vaatler
Ana kontrolör:
app.controller('statsCtrl', function ($scope, $log, $http, $timeout, $filter, Data, $rootScope) {
Data.get('stats').then(function(data){
$scope.stats = data.data;
$scope.currentPage = 1; //current page
$scope.filteredItems = $scope.stats.length; //Initially for no filter
$scope.totalItems = $scope.stats.length;
$scope.list_pages = [
{
id: '5',
name: '5'
}, {
id: '10',
name: '10'
}, {
id: '20',
name: '20'
}, {
id: '50',
name: '50'
}, {
id: '100',
name: '100'
}
];
$scope.maxSize = 5;
$rootScope.facebookObjects = $filter('filter')($scope.stats, { platform: "facebook" });
$rootScope.twitterObjects = $filter('filter')($scope.stats, { platform: "twitter" });
});
$scope.setPage = function(pageNo) {
$scope.currentPage = pageNo;
};
$scope.filter = function() {
$timeout(function() {
$scope.filteredItems = $scope.filtered.length;
}, 10);
};
$scope.sort_by = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = !$scope.reverse;
};
});
Tabloyu doldurmak için $rootScope.facebookObjects
kullanan bir ikinci kontrolör bulunmaktadır. Sorun, $rootScope.facebookObjects
'un bir değere sahip olmasını beklemem gerek. Şu anda konsol günlüğüm tanımsız gösteriyor. Sözlere bakıyorum ama hangi denetleyiciyi kullanacağını ve düzgün şekilde nasıl kullanacağımı biraz emin değilim.
İkinci Denetleyici:
app.controller("PieCtrl", function ($scope, $rootScope, $timeout, $log) {
$log.log('facebook - '+$rootScope.facebookObjects.length);
});
Eğer '$ rootScope' üzerine veri eklemek yok denetleyicileri arasında veri paylaşmak isterseniz, bunun yerine bir hizmeti kullanmak. – Ankh
Açısal olarak çok yeni. Bunu nasıl yapacağımı gösterebilir misin? – Jason
[Bunun gibi bir şey] deneyin (http://stackoverflow.com/a/12513509/2043204) – Ankh