我正在尝试遍历用户个人资料并为每个人分配一种独特的颜色。以下是我到目前为止的情况:
更新:我可以遍历$ 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++]);
});
});
答案 0 :(得分:1)
尝试这样的事情:
var ind = 0;
$.each($scope.profiles, function (i, e){
if (e && e.username){
e.colour = colors[ind++]
}
});
<强>更新强>
如果$scope.profiles
是承诺,这样的事情可能有效:
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();
});
});