Angularjs 在承诺范围内访问数据
调用getAllMenuItems函数后,我不想访问控制器中的数据: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
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
}
);