如何在活动/非活动子项下添加组?

时间:2014-12-02 15:45:36

标签: angularjs firebase angularfire

我已成功将数据发送到firebase服务器但是我无法将数据发送到我创建的相应数据子集。当我发送以html格式发送的数据时,它按ID号发送。我需要它作为一个孩子发送到'组' firebase中的类别。

这是一个带有服务器和$ add工作的Plnkr。我真的很感激任何建议!

http://plnkr.co/edit/LZ24sRoSJjuCHQnEGzQz?p=linter

   .controller('MainCtrl', ['$scope', 'groupsService', function( $scope, groupsService,  $firebase ) {

$scope.newGroup = {
  name: '',
  status: ''
};

$scope.addGroup = function(newGroup) {

  groupsService.addGroup(newGroup);

  $scope.newGroup = {
    name: '',
    status: ''
  };

};
$scope.updateGroup = function (id) {
  groupsService.updateGroup(id);
};

$scope.removeGroup = function(id) {
  groupsService.removeGroup(id);
};
}])

.factory('groupsService', ['$firebase', 'FIREBASE_URI',
  function ($firebase, FIREBASE_URI) {
    var ref = new Firebase(FIREBASE_URI);

    var groups = $firebase(ref).$asArray();

    var getGroups = function(){
     return groups;
    };

   var addGroup = function (newGroup) {
     console.log(newGroup)
     groups.$add(newGroup);
   };

  var updateGroup = function (id){
    groups.$save(id);
  };

  var removeGroup = function (id) {
    groups.$remove(id);
  };

return {
  getGroups: getGroups,
  addGroup: addGroup,
  updateGroup: updateGroup,
  removeGroup: removeGroup,
 }

 }]);

感谢您的回复!我想要做的是将虚拟数据(名称和状态)添加到组类别,如下所示:

  {
   Groups:[
        "-JcFXid1A2G8EM7A_kwc" : {
           "name" : "hi",
           "status": "inactive"

      },

       "-JcFZP5FNtL4Yj6nja_7" : {
           "name" : "hi"
           "status": "inactive"
      },
       "-JcFtGoZL7J-CCIjTYcL" : {
           "name" : "dfgdfg",
           "status": "inactive"
      }
   ]
}

将它们按活动或非活动组织会更有意义吗?我害怕在火堆中筑得太远......

喜欢

 {
   Groups:[
          "Active":[

           "-JcFXid1A2G8EM7A_kwc" : {
            "name" : "hi",

           }
          ],
          "Inactive":[

            "-JcFZP5FNtL4Yj6nja_7" : {
              "name" : "hi"          
      },

            "-JcFtGoZL7J-CCIjTYcL" : {
               "name" : "dfgdfg"

      }
    ]
  ]
 }        

1 个答案:

答案 0 :(得分:1)

这还不是您问题的答案,因为我首先需要了解您要完成的工作(我无法在评论中填写这些信息)。

在您的视图中,您有一个与该组名称和状态绑定的表单:

<form role="form" ng-controller="MainCtrl" ng-submit="addGroup(newGroup)">
  <div class="form-group">
    <label for="groupName">Group Name</label>
    <input type="text" class="form-control" id="groupName" ng-model="newGroup.name">
  </div>
  <div class="form-group">
    <label for="groupStatus">Group Status</label>
    <select class="form-control" ng-model="newGroup.status">
      <option value="inactive">Inactive</option>
      <option value="active">Active</option>
    </select>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

在您的GroupsService中,您基本上可以添加如下组:

var ref = new Firebase(FIREBASE_URI);
var groups = $firebase(ref).$asArray();
groups.$add(newGroup);

将该组添加到该URL的集合中。

这导致了这种数据结构:

{
    "-JcFXid1A2G8EM7A_kwc" : {
        "name" : "hi",
        "status" : "inactive"
    },
    "-JcFZP5FNtL4Yj6nja_7" : {
        "name" : "hi",
        "status" : "active"
    },
    "-JcFtGoZL7J-CCIjTYcL" : {
        "name" : "dfgdfg",
        "status" : "active"
    }
}

但是,如果我理解你,你希望数据存储如下:

{
    "inactive": [
        "-JcFXid1A2G8EM7A_kwc" : {
            "name" : "hi"
        }
    ],
    "active": [
        "-JcFZP5FNtL4Yj6nja_7" : {
            "name" : "hi"
        },
        "-JcFtGoZL7J-CCIjTYcL" : {
            "name" : "dfgdfg",
        }
    ]
}
  1. 这确实是你想要做的吗?
  2. 您是否会在列表中显示活动和非活动组?这一点很重要,因为在Angular中过滤列表非常容易,但我不知道如何合并两个列表。