所以,我的AngularJS工厂看起来像:
.factory('getCategories', function($http) {
return $http.get('api/categories');
})
然后,在控制器中,我得到的值如下:
getCategories.
success(function(data) {
$scope.category_data = data;
});
在视图中,我可以通过{{category_data}}访问范围变量,它工作正常,返回JSON。但是,当我尝试访问控制器中的变量时,它总是为空。我试过这样做:
$scope.category = $scope.category_data;
然后,在我有了这个之后,我会尝试通过{{category}}访问视图中的$ scope.category变量,它将是空白的。
关于替代我所做的事情的任何提示?或者我做错了什么?
编辑:以下是我整个控制器的样子。
.controller('ForumController', function($scope, $route, $routeParams, $location, $filter, getCategories) {
getCategories.
success(function(data) {
$scope.category_data = data;
});
$scope.category = $scope.category_data;
})
答案 0 :(得分:1)
由于success
回调是异步的,因此会在分配到$scope.category
之后执行,因此您实际上将undefined
的值分配给$scope.category
你需要做这样的事情:
.controller('ForumController', function($scope, $route, $routeParams, $location, $filter, getCategories) {
getCategories.
success(function(data) {
$scope.category = data;
});
})