2015-03-30 3 views
0

Я определил 1 сервис, чтобы получить категорию и контроллер для вызова службы.Не удалось позвонить из контроллера angularJS

var req = { 
    method: 'POST', 
    url: 'http://localhost/cgi-bin/superCategory.pl', 
    headers: { 'Content-Type': undefined }, 
    data: { action: 'GET' } 
}; 


sampleApp.factory('SuperCategoryService', ['$http', function ($http){ 
    return { 
     GetSuperCategories: function() { 
      return $http(req) 
       .then(
       function(response) 
       { 
        if (typeof response.data === 'object') 
        { 
         alert ('right'); 
         //return response.data; 
        } 
        else 
        { 
         alert ('wrong'); 
         // invalid response 
         //return $q.reject(response.data); 
        } 

       }, 
       function(response) { 
        alert ('again worng'); 
        // something went wrong 
        //return $q.reject(response.data); 
       }); 
      } 
     }; 
}]); 


sampleApp.controller('SuperCategoryController', ['$scope', 'SuperCategoryService', function ($scope, SuperCategoryService){ 

    $scope.SuperCategories = function() { 

     SuperCategoryService.GetSuperCategories() 
      .then(function(d) { 
       alert (d); 
       if (d != undefined) { 
        alert ('in'); 
        // Your data should be loaded here 
        console.log(d.data); 
        alert (d); 
        $scope.SuperCategories = d.data; 
       } 
       else 
       { 
        alert ('Here'); 
       } 
      }) 
      .error(function(data, status) { 
       // Errors here 
      }); 
    } 

}]); 

Даже если я звоню в диспетчер, но не нахожусь в обслуживании. (Даже ошибка)

В чем проблема? Любая помощь будет высоко оценена.

+0

Вы звоните SuperCategories() из шаблона ?? Вы пытались открыть DevTools, чтобы узнать, есть ли какая-либо ошибка в вашей консоли? – alphamikevictor

+1

вы должны ввести фабрику в функцию контроллера ($ scope, SuperCategoryService) {} ', а затем в контроллере использовать ее как' SuperCategoryService.GetSuperCategories() ' – maurycy

+0

Вы назначили функцию для вызова вашей службы в' $ scope.SuperCategories' переменная. ОК. Вы тогда вызываете его где угодно? Прямо сейчас, нигде в вашем коде, который вы опубликовали, вы вызываете эту функцию. –

ответ

0

См. Это $http documentation.Here вы сделали ошибку в вызове метода $http.

sampleApp.factory('SuperCategoryService', ['$http', function ($http){ 
    return { 
     GetSuperCategories: function() { 
      return $http.post('http://localhost/cgi-bin/superCategory.pl',{ action: 'GET' });         
     }; 
}]); 
Смежные вопросы