Pregunta

I am having trouble returning data from a factory method to a controller.

service.js

var serverFac = angular.module('serverCom', []).factory('SmsSendService', function($http){

var transform = function(data){
    return $.param(data);
}

var temp = {};
temp.sendSms = function(tempJs){
    $http.post("http://localhost:8080/somepath/rest/text-messages/send/batch", tempJs ,{
        transformRequest: transform
    }).success(function(data, status, headers, config){
        //do stuff with response
    });
};

temp.login = function (tempUserPassword){
    $http.post("http://localhost:8080/somepath/rest/users/authenticate", tempUserPassword ,{
           transformRequest: transform
        }).success(function(data, status, headers, config){
            //do stuff with response
        }). error(function(data, status, headers, config){
            console.log(status);
        });
    };


temp.SimList = function (){
    $http.get("http://localhost:8080/RetireesClub_server/rest/sim-cards"
        ).success(function(data, status, headers, config){
            //do stuff with response

        }). error(function(data, status, headers, config){

        });
};


    return temp;
});

serverFac.config(function($httpProvider){
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-   urlencoded;charset=utf-8';
});

controller.js

function SimListController($scope, SmsSendService, SearchData, Search , $dialog , $location,$filter ){
    smsSendService.simList().success(function(data){
        $scope.sims= data;
    }
}
¿Fue útil?

Solución

Since you are handling the success callback in the controller, make your service function return a promise:

temp.SimList = function (){
    return $http.get("http://localhost:8080/RetireesClub_server/rest/sim-cards")
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top