Angularjs 在承诺范围内访问数据

Angularjs 在承诺范围内访问数据,angularjs,Angularjs,调用getAllMenuItems函数后,我不想访问控制器中的数据: x.factory('menuItemsData', function($http, $q){ return { getAllMenuItems: function(){ var deferred=$q.defer(); $http({method: 'GET', url: 'data/MenuItems.json'}). success(functi

调用getAllMenuItems函数后,我不想访问控制器中的数据:

 x.factory('menuItemsData', function($http, $q){

    return {
    getAllMenuItems: function(){
        var deferred=$q.defer();
        $http({method: 'GET', url: 'data/MenuItems.json'}).
            success(function(data, status, headers, config){
                deferred.resolve(data);
            }).
            error(function(data, status, headers, config){
                deferred.reject(status);
            });
        return deferred.promise;
    }
};
})

以这种方式:

app.controller('myCtrl', function($scope, myService){
   myService.getAllMenuItems().success(function(res){
       // access the response here.
       $scope.menuItems = res.Items; // assign the menuitems.
   })
});

您需要从以下承诺中获取数据:

menuItemsData.getAllMenuItems().then(function(data){
   console.log(data);
});
menuItemsData.getAllMenuItems().then(function(data){
   console.log(data);
});
menuItemsData.getAllMenuItems().then(
    function(res){ 
        //success callback
        },
    function(error){ 
        //failure callback
        }
    );