AngularJS: $http成功回调的作用域问题
AngularJS : Scope issue in $http success callback
我使用PHP将数据输入工厂,这在控制器内的成功回调函数中正确显示。然而,即使将返回的数据赋值给$scope。如果我在回调之后执行console.log($scope.customers),它就不存在了,并且我的视图的[ng-repeat]也没有拾取它。
如果我将返回的数据分配给我的$scope对象,为什么我的数据范围将被限制在成功回调的内部?
var customersController = function($scope, customersFactory) {
$scope.customers = [];
customersFactory.getAllData()
.success(function(customers) {
$scope.customers = customers;
console.log($scope.customers); // Object with correct data
}); // No errors so only showing happy path
console.log($scope.customers); // empty []
};
customersModule.controller('customersController', ['$scope', 'customersFactory', customersController]);
$http函数异步发生。因此,在customersFactory.getAllData
之后调用console.log将始终为空。
console.log($scope.customers); // Object with correct data
实际上发生在
之后 console.log($scope.customers); // empty []
您可以信任成功回调来正确设置$scope.customers
,您只需要您的站点了解它将在稍后发生。如果你需要范围。要在视图加载之前填充客户,请考虑在控制器上使用解析。
不是
console.log($scope.customers); // empty []
之前执行console.log($scope.customers); // Object with correct data
?
第二个是在success()回调中,所以它可以比第一个执行得晚得多。
相关文章:
- 作用域问题-此函数是否形成闭包-JavaScript
- 访问Javascript对象-Node.js的作用域问题
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- 'simple'套接字中的作用域问题.IO服务器
- Javascript作用域问题,对象在分配后没有数据
- 可能存在Javascript作用域问题
- 本地Javascript作用域问题
- 设置Javascript函数的作用域问题
- Javascript 中使用 setTimeout 的作用域问题
- 作用域问题反应父子方法ES6
- jquery get中的作用域问题
- 绑定时出现Javascript作用域问题
- 试图覆盖全局变量时出现jQuery.post()作用域问题
- 作用域问题Uncaught ReferenceError
- 使用reduce串行链接Javascript承诺时的作用域问题
- Javascript变量作用域问题-错误:类型错误:this.graphics未定义
- extjs 4中的作用域问题
- 变量未正确赋值,可能存在作用域问题(getJSON()中的each()中有一个开关的函数)
- Javascript作用域问题:函数在$(doc).ready()中可用,但在事件处理程序中不可用
- Angular 2服务单例作用域问题