在angularjs控制器I有这样的代码:转换一个场与angularjs和Javascript对象数组数据到另一个值
var ysshControllers = angular.module('theControllers', []);
ysshControllers.controller('CommonController',
function($scope, $http, $route) {
$scope.dbKey = $route.current.customInput;
$scope.urlToDb = 'https://' + $scope.dbKey + '/.json';
$http.get($scope.urlToDb).success(function(data) {
var values = [];
for (var name in data) {
values.push(data[name]);
}
$scope.Items = values;
});
// Initially order by date and time
$scope.orderProp = 'ac';
}
);
它创建具有名称Items
的对象阵列。关键值只是aa
,ab
,ac
等。当用户从下拉菜单中输入数据时,我只想保存如下值:1,2,3,4,5
,然后当数据导入网站时,将值转回。像0
= Bad
; 5
= Very Good
。因此,对于每个键名为ae
的记录,我想将1,2,3,4,5的值转换为差,好,公平,良好,非常好。
我能弄清楚程序流程,我需要知道的是如何使用面向对象的JavaScript引用值我猜。
的数据结构是这样的:
C5_200630_Option 1
aa:"Option 1"
ab:"Toyota"
ac:6499
ad:"Truck"
ae:"Tacoma, Silver, 1/2 ton 4wd"
af:4
我跑这就像代码:
alert(Object.keys($scope.UsedItems));
,它给的0,1,2,3,4
值等所以我猜这个键值$scope.UsedItems
只是数字。我不知道如何专门访问密钥和数值数据。什么是简单的方法,我可以在警报中显示数组的内容是什么?
我用这条线:
alert(data[name].ad);
这将引用数据在每个记录的名称ad
。所以这给了我一种识别记录中特定项目的方法。
好吧,我想出了一个解决方案:
if (data[name].af === "3") {
data[name].af = "Awesome!";
}
即使我想出解决我的问题,我还是几乎不知道我在做什么。所以如果有更好的方法,让我知道。