Javascript 无法设置未定义的角js的属性
我有一个json对象列表,$scope.phones,还有一个包含json文件的文件夹,其中包含关于每部手机的附加数据。我正试图反复浏览这些文件,以获取更多信息,并将其放在关于每部手机的列表中:Javascript 无法设置未定义的角js的属性,javascript,json,angularjs,asynchronous,web,Javascript,Json,Angularjs,Asynchronous,Web,我有一个json对象列表,$scope.phones,还有一个包含json文件的文件夹,其中包含关于每部手机的附加数据。我正试图反复浏览这些文件,以获取更多信息,并将其放在关于每部手机的列表中: phonecatControllers.controller('PhoneListCtrl', ['$scope', 'Phone', function($scope, Phone) { $scope.phones = Phone.query(); var myTimer = window.setTi
phonecatControllers.controller('PhoneListCtrl', ['$scope', 'Phone',
function($scope, Phone) {
$scope.phones = Phone.query();
var myTimer = window.setTimeout(function() {
for (var i = 0; i < $scope.phones.length; i++){
var weight = 0;
Phone.get({phoneId: $scope.phones[i].id}, function( phone) {
weight = phone.sizeAndWeight.weight;
$scope.phones[i].weight = weight;
});
};
} , 1000 );
$scope.orderProp = 'age';
}]);
如果我尝试在.get方法之外访问此项,则不会出现问题,但是在get方法之外不存在新的权重值。等待电话列表,然后再遍历它们:
Phone.query().then(function(phones){
for(var i=0; i<phones.length; i++){
var weight = 0;
Phone.get({phoneId: phones[i].id}, function( phoneDetails) {
weight = phoneDetails.sizeAndWeight.weight;
phones[i].weight = weight;
});
}
}
Phone.query().then(函数(电话){
对于(var i=0;这里有几个问题,首先你应该看看在手机加载之前不更新手机的承诺,因为加载手机可能需要超过1秒的时间。另外,当Phone.get
解决时,我将始终是$scope.phones.length
你会想查看closu要解决此问题,请执行以下操作:
Phone.query().then(function(phones){
for(var i=0; i<phones.length; i++){
var weight = 0;
Phone.get({phoneId: phones[i].id}, function( phoneDetails) {
weight = phoneDetails.sizeAndWeight.weight;
phones[i].weight = weight;
});
}
}