0

I have two controllers. In one controller I am storing the data in scope variable for different categories and for different weeks and days. Here is the function for the same:

$scope.fetchWeekList = function(type) {
    $scope.loading = true;
    var paramtype = (type == 'mo')?'Mobiles':((type == 'ta')?'Tablets':((type == 'la')?'Laptops':'TVs'));
    var weekListUrl = url + "/" + paramtype;
    var request = $http({
        method: "GET",
        url: weekListUrl, 
        headers: { 'Accept' :'application/json','Content-Type' :'application/json', 'Accept-Language': 'en'}
     });

     request.success(
       function(data) {
           $scope.weekList = data.object;
           $scope.loading = false;
     });

     request.error(
        function(data, status) {
            console.log(status);
            $scope.weekList = data || "Request failed";
            $scope.loading = false;
     });
};

Please pat attention that I am fetching the data for the week lists for all the categories with this single function.

Then I am using this:

$scope.$on('fetchSaleDetails', function(event,type) {
    $scope.fetchWeekList(type);
    }

Then I am broadcasting it in the other controller like this:

$rootScope.$broadcast('fecthSaleDetails','mo');
$rootScope.$broadcast('fecthSaleDetails','ta');
$rootScope.$broadcast('fecthSaleDetails','la');

But when I switch the company the weeks of one category appears in the other and when I click again on the company the data changes. This is the function to update company.

$scope.updateCom = function(corresCom) {
    $("html, body").animate({scrollTop: 0 }, "slow");

    $rootScope.$broadcast('updateComDetail',corresCom);
    $rootScope.$emit('fetchSaleDetails','mo');
    $rootScope.$broadcast('fecthSaleDetails','mo');
    $rootScope.$broadcast('fecthSaleDetails','ta');
    $rootScope.$broadcast('fecthSaleDetails','la');

    $scope.selectedCom = corresCom;

};

I would be grateful if someone can tell me the issue here. I have tried my best but no luck.

Thanks.

Hitesh Sharma
  • 23
  • 1
  • 7
  • if you have $rootScope.$emit('fetchSaleDetails','mo'), doesn't this require rootscope to have a parent to push to? does this actually work? – SoluableNonagon Dec 17 '14 at 19:33
  • Probably I did not pay attention to this as I am using $rootScope.$broadcast('fecthSaleDetails','mo'); as well. But i checked and it was working. The problem is that mobile weeks data is appearing in tablet category :( – Hitesh Sharma Dec 17 '14 at 19:50

0 Answers0