javascript - 如何循环遍历 Firebase 集合并为每个集合添加独特的颜色?

标签 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++]);
    });
 });

最佳答案

尝试这样的事情:

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/

相关文章:

javascript - 为什么 'this'指的是对象 'obj'不是全局对象

javascript - Web Crawler - 返回要在下一个函数中使用的数组

javascript - WordPress 上传表单 javascript 帮助

重新加载页面时,AngularJS tabset 不显示正确的状态

javascript - AngularJS : Interpolating attributes

javascript - AngularJS - 用数组填充下拉列表

javascript - 有没有办法使用 SurveyJS 将调查结果保存为 Json 或文本文件?

Javascript location.href 在 Explorer 11 上崩溃

javascript - 引用一个字符串

html - 在angularjs中获取当前行及其值