【发布时间】:2017-07-31 09:19:47
【问题描述】:
我无法在控制器外部访问变量 $scope.compdata。提前致谢。
var compdata;
$scope.fetchCompanies = function() {
var deferred = $q.defer();
Company.get({
arg1 : 'list',
arg2 : 14
}, function(success) {
$scope.compdata = success.data;
deferred.resolve(success.data); //Edited here
});
return deferred.promise;
};
$scope.fetchCompanies()
.then(function(data) { // and this block
$scope.compdata = data; //Added
console.log("outside : ", $scope.compdata) //success
});
console.log("outside : ", $scope.compdata); //undefined
【问题讨论】:
-
这是因为异步执行。该值将在 promise 的解析之外未定义
-
@bhavani 您将无法访问外部数据
$scope.compdata,因为您在异步调用(即 ajax 调用)中对其进行了设置。通过在外部访问$scope.compdata您到底想做什么?请解释一下场景。
标签: angularjs ionic-framework hybrid-mobile-app