当我声明一个变量从我的函数外部的json文件数据中获取一个元素时,我有一个错误,有人可以解释为什么PLZ?
produit.json:
[{
"id" : 1,
"reference": "AA"
},
{
"id" : 2,
"reference": "BB"
}]
angulars.js:
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope,$http,$log) {
$http.get('produits.json').success(function (data) {
$scope.produits = data;
$scope.ref1= $scope.produits[0].reference; //OK
});
$scope.ref1= $scope.produits[0].reference; //ERROR: undefined produits
});
的index.html:
<body ng-app="myApp">
<div ng-controller="MainCtrl">
Reférence 1 : {{ ref1 }} // ERROR
</div>
</body>
答案 0 :(得分:1)
在服务返回结果之前,尚未定义$scope.produits
。即使它是,但它不会有[0]
元素。
所以我认为最好的方法是不添加代码的最后一行,只是等待服务返回结果:
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope,$http,$log) {
$http.get('produits.json').success(function (data) {
$scope.produits = data;
$scope.ref1= $scope.produits[0].reference; //OK
});
});
答案 1 :(得分:0)
您编写的代码正在执行异步调用,也就是说,当您进行http调用时,需要一些时间来获取响应,但javascript代码会继续运行,因此直到返回响应尚未调用成功回调,因此直到那个时间点才定义$ scope.produits