JavaScript从内部函数更新外部函数变量
我试图更新getSubCategory函数内的数据变量,但该数据变量仅在内部函数范围内更新,并且无法更新外部函数的数据变量,从而导致空对象,即{}初始化。提前谢谢 对于不熟悉承诺概念的开发人员来说,这个问题并不少见。$http服务返回一个由.then()方法实现的承诺。因此,您要做的是在调用.then()方法并实现承诺之前使用响应数据 这里有一个建议将您的服务重构为更典型的模式:JavaScript从内部函数更新外部函数变量,javascript,angularjs,closures,Javascript,Angularjs,Closures,我试图更新getSubCategory函数内的数据变量,但该数据变量仅在内部函数范围内更新,并且无法更新外部函数的数据变量,从而导致空对象,即{}初始化。提前谢谢 对于不熟悉承诺概念的开发人员来说,这个问题并不少见。$http服务返回一个由.then()方法实现的承诺。因此,您要做的是在调用.then()方法并实现承诺之前使用响应数据 这里有一个建议将您的服务重构为更典型的模式: angular.module('adminApp') .service('subCategoryFinder', [
angular.module('adminApp')
.service('subCategoryFinder', ['$http',function($http){
var self = this;
self.getSubCategory = function(){
var data = {};
$http.get('/app/admin/category/category.json').then(function (response) {
data = response.data;
console.log(data);
});
return data;
}
}]);
美好的我不知道,非常感谢您的时间和澄清。
angular.module('adminApp')
.service('subCategoryFinder', ['$http', function($http) {
this.getSubCategory = function() {
return $http.get('/app/admin/category/category.json');
};
}])
.controller('myController', ['$scope', 'subCategoryFinder', function($scope, subCategoryFinder) {
subCategoryFinder.getSubCategory.then(function(response) {
$scope.subCategories = response.data;
});
}
}])