我正在尝试循环浏览用户配置文件并为每个人分配唯一的颜色。这是我到目前为止所拥有的:
更新:我可以循环遍历 $scope.profiles 并单独访问每个配置文件。我不知道如何将颜色数组中的唯一颜色添加到每个配置文件中。
var colors = ['red', 'blue', 'green', 'purple', 'orange', 'teal', 'violet', 'burgandy', 'brown', 'pink'];
var obj = $firebase(new Firebase('https://demo.firebaseio.com/' + team + '/profiles')).$asObject();
obj.$loaded().then(function() {
var i = 0;
angular.forEach(obj, function(value, key) {
//how do I add a color from the colors array?
value.$add(colors[i++]);
});
});
最佳答案
尝试这样的事情:
var ind = 0;
$.each($scope.profiles, function (i, e){
if (e && e.username){
e.colour = colors[ind++]
}
});
更新
如果$scope.profiles
是一个 promise ,这样的事情可能会起作用:
var ind = 0;
$.when($scope.profiles).done(function(obj){
$.each(obj, function (i, e){
if (e && e.username){
e.colour = colors[ind++]
}
});
});
这是有效的确切解决方案。
// to take an action after the data loads, use $loaded() promise
$scope.profiles.$loaded().then(function() {
var i = 0;
angular.forEach($scope.profiles, function(value, key, profile) {
value.color = colors[i++];
profile.$save();
});
});
关于javascript - 如何循环遍历 Firebase 集合并为每个集合添加独特的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985248/