我才刚刚开始学习AngularJS。
我创建了一个简单的应用程序来显示json文件中的内容。但是,然而分配给$ http内的作用域的数据在外部返回未定义。
var app= angular.module('app',[]);
app.controller('apCtrl',['$scope','$http',function($scope,$http){
$http.get('/path/to/data.json').success(function(){
console.log(data); // returns data --working
$scope.data=data; // assiged
console.log($scope.data); // returns data --working
});
console.log($scope.data); // returns 'undefined' --not working
}]);
请帮助我了解这个问题。
谢谢!
这是因为您正在进行异步调用。当您尝试从成功函数之外调用数据时,没有准备好数据。检查文档。
例如,如果您等待几秒钟,它将显示:
app.controller('apCtrl',['$scope','$http','$timeout',function($scope, $http, $timeout){
$http.get('/path/to/data.json').success(function(){
console.log(data); // returns data --working
$scope.data=data; // assiged
console.log($scope.data); // returns data --working
});
$timeout(function(){
console.log($scope.data);
}, 2000);
}]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句