1
app.factory('myService', function ($http) {
var serviceurl = 'http://localhost:12345/Area/Controller/Action/';
var roles = [];
function getRole(id) {
    //alert(id);
    $http.get(serviceurl + id).success(function (data) {
        console.log(data);
        roles = data;
    })
    .error(function (x, y) {
        alert('error occurred');
    });
}
return {
    roles: roles 
}
});

我在我的控制器中将其称为:

app.controller("myController", function ($scope, $http, myService) {
    $scope.roles = myService.roles;
});

但是 $scope.roles 未定义并且 myService.roles 没有价值:当我尝试在 $scope.roles = myService.roles; 中放置断点时,角色 []

我的代码有什么问题?我应该如何在控制器中调用角色?

4

1 回答 1

0
app.factory('myService', function ($http, $q) {
    return {
        getRole:function(id){
            var serviceurl = 'http://localhost:12345/Area/Controller/Action/';
            var roles = [];
            var p = $q.defer();
            $http.get(serviceurl + id).success(function(data) {         
                console.log(data);              
                p.resolve(data);
            })
            .error(function (x, y) {
                alert('error occurred');
            });
            return p.promise;
        }
    }   
});

在您的控制器中:

$scope.roles = myService.getRole(id);
于 2013-09-09T11:50:18.147 回答