所以我有一个控制器,使一个工厂的调用,然后设置一个"variableToExpose"。当我console.log($scope.variableToExpose)显示为未定义时。将变量暴露给控制器的最佳方式是什么?
.controller('SomeCtrl', function($scope, $http, $state, SomeFactory) {
console.log($scope.variableToExpose); //returns undefined
SomeFactory.getRequest($id).then(function(response){
$scope.variableToExpose = varFromGetRequest;
}
}
谢谢!
将console.log
移动到成功处理程序中。
app.controller('SomeCtrl', function($scope, $http, $state, SomeFactory) {
//console.log($scope.variableToExpose); //returns undefined
SomeFactory.getRequest($id).then(function successHandler(response){
//$scope.variableToExpose = varFromGetRequest;
$scope.variableToExpose = response;
console.log($scope.variableToExpose);
});
});
promise的.then
方法在promise被解析后调用成功处理函数。$q
服务调用该函数时,唯一的参数是promise的解析值。