如何遍历firebase集合并为每个集合添加独特的颜色?

时间:2014-11-18 01:49:34

标签: javascript jquery angularjs firebase

我正在尝试遍历用户个人资料并为每个人分配一种独特的颜色。以下是我到目前为止的情况:

更新:我可以遍历$ 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++]);
    });
 });

1 个答案:

答案 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();
        });
     });