AngularJS在方法之外访问$scope
AngularJS accessing $scope outside of method
这是我在控制器中的方法,我想在下面给定的方法之外访问$scope.oldcats。在方法中使用console.info($scope.oldcats);
,输出数据,但使用console.info($scope.oldcats);
外部功能显示undefined
。
$scope.loadPost = function() { //Issues a GET request to /api/post/:id to get a Post to update
$scope.posts = Post.get({ id:$stateParams.id}, function(response){
$scope.posts = response.data;
$scope.posts.selcats = response.data.categories;
var cats = $scope.posts.categories;
$.each(cats, function(arrayID,group) {
$scope.allCats.push(group.id);
});
$scope.oldcats = $scope.allCats; // <- i want to access it
console.info($scope.oldcats); // <- output displays data
});
};
$scope.loadPost(); // Load a Post which can be edited on UI
console.info($scope.oldcats); // <- output display undefined
你犯了几个错误,你应该使用承诺:
$scope.loadPost = function(){ //Issues a GET request to /api/post/:id to get a Post to update
$scope.posts = function(){
var deferred = $q.defer();
Post.get({ id:$stateParams.id}, function(response){
$scope.posts = response.data;
$scope.posts.selcats = response.data.categories;
var cats = $scope.posts.categories;
$.each(cats, function(arrayID,group) {
$scope.allCats.push(group.id);
});
$scope.oldcats = $scope.allCats; // <- i want to access it
deferred.resolve($scope.oldcats);
console.info($scope.oldcats); // <- output displays data
});
return deferred.promise;
};
return $scope.posts;
};
$scope.loadPost()().then(function(res){
console.info(res);
});
在 API 调用完成之前调用函数外部的console.info
。因此,它会记录undefined
.但是,在 API 调用完成后,将调用函数内的控制台。这称为异步行为。看看承诺
这个thinkster
教程将有助于更好地理解异步行为:思考者理解承诺
相关文章:
- Ng出口无法访问父$scope
- 如何从其他方法访问Angular.js$scope
- 我如何访问在 Angular JS 的 .then() 中定义的$scope数组
- 从同一控制器 Angularjs 中的另一种方法访问$scope变量
- UI-GRID:访问$scope的问题
- ng-repeat中的ng-options - 无法访问$scope中的选定项目
- AngularJS在方法之外访问$scope
- 在$routeChangeSuccess指令的模板中访问$scope
- 在AngularJS中的$http成功回调之外无法访问$scope变量值
- 在AngularJs中从视图到工厂访问$scope数据
- 在不访问$scope的情况下自动更改输入字段
- AngularJS:在$routeProvider完成请求后访问' $scope '值
- 在用函数作为模板的重复AngularJS指令中访问' $scope '
- 从AngularJS服务内部访问$scope属性
- 如何访问“$scope.search.value”
- 我如何获得登录函数能够访问$scope.names
- 无法在angular中访问$scope
- 如何在用我的HTML编写的javascript中访问scope.postresult值
- 从ng视图访问$scope时遇到问题
- AngularJS -如何从指定作用域的指令中访问$scope